NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
How to miscompile programs with "benign" data races [pdf] (usenix.org)
kccqzy 14 hours ago [-]
This needs (2011).

If I remember correctly this report is written in the context of standardizing new features in C++11 related to synchronization, threads, and the memory model.

swagmoney1606 14 hours ago [-]
>Perhaps most surprisingly, this includes even the case of potentially concurrent writes of the same value by different threads.

Can someone explain to me how this is possible?

iracigt 11 hours ago [-]
Section 2.4 gives a concrete example, though there are some asterisks. The example is one where a compiler rewrites something like `while (...) x++;` to put `x` in a register: `int reg = x; while (...) reg++; x = reg`. The author reports this is an optimization GCC was observed doing, and means you can have a read-writeback even when the while condition is false to begin with. If this optimization appears interleaved with identical writes then you have problems.
kccqzy 14 hours ago [-]
Go read section 2.4.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 05:41:13 GMT+0000 (Coordinated Universal Time) with Vercel.