On Freitag, 8. Januar 2010, Erik Faye-Lund wrote:
On Fri, Jan 8, 2010 at 4:32 AM, Dmitry Potapov [off-list ref] wrote:
quoted
AFAIK, Win32 API assumes that reading LONG is always atomic, so
the critical section is not really necesary here, but you need
to declare 'waiters' as 'volatile':
"Simple reads and writes to properly-aligned 32-bit variables are
atomic operations."
http://msdn.microsoft.com/en-us/library/ms684122(VS.85).aspx
In other words: Yes, you are right.
Quite frankly, I do not want to stretch this statement to apply to the MinGW
compiler. The code in question is not performance critical anyway. I'd prefer
to leave it as is - it's undergone 2 months of testing already. Besides,
IMHO, it is much more readable the way it is written.
-- Hannes