Hi,
Alexandre Julliard wrote:
If another thread can change dwStatus you need a critical section or an interlocked function.
So if AJ is still not satisfied with try 2, I'll change all reads of wmm->dwStatus within the player into InterlockedExchange. Yet I think that would be a superfluous extra memory barrier within the player.
I've now submitted try 4 which uses InterlockedExchange. Given time, I'd like to find another place where to debate this issue, perhaps Usenet's comp.lang.c or a GCC mailing list (even if not specific to GCC)?
Regards, Jörg Höhle