<br><br><div class="gmail_quote">On Mon, Nov 1, 2010 at 1:39 PM, Michel Fortin <span dir="ltr"><<a href="mailto:michel.fortin@michelf.com">michel.fortin@michelf.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
Is "i++" really atomic when i is a size_t? I though it was a read-modify-write operation. The read might be atomic, the write might be atomic, but the whole isn't. And in addition to atomicity, it needs to be sequentially consistent unless we change the GC to keep threads frozen while calling the destructors.<br>

<br></blockquote><div><br>In theory it could be read-modify-write because you never know if some incredibly stupid compiler will do something like:<br><br>mov EAX, [someAddress];<br>inc EAX;<br>mov [someAddress], EAX;<br>
<br>instead of just:<br><br>inc [someAddress]; <br></div></div><br>However, I'm pretty sure the second form is atomic, and even if it's not formally guaranteed, any reasonable compiler would use the single inc instruction form.<br>