On 28/06/17 22:22, Toebs Douglass wrote: > On 28/06/17 18:36, Richard Earnshaw wrote: >> thread2 is blissfully unaware of the fact that by using CAS directly on >> 'a' it has broken the requirement in f() that an object must be locked >> before it can be dereferenced. > > I don't undestand, though; wouldn't this be something which falls wholly > to the *user* to get right? why is the compiler concerned? Yes, it totally is. > If I create a variable which I make thread safe with locks and then in > one case I don't use those locks, this is my problem, not the compilers. > > This matter with CAS/locks seems much the same. Exactly. The fact that people can mess up is no excuse for GCC not providing an intrinsic for double-word CAS. -- Andrew Haley Java Platform Lead Engineer Red Hat UK Ltd. <https://www.redhat.com> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671