[SDL] SDL Semaphore implementation broken on Windows?
Sam Lantinga
slouken at devolution.com
Thu Dec 27 19:22:21 PST 2007
> However, assuming this is the cause of my problems, there is a very
> simple fix:
> Windows provides InterlockedIncrement() and InterlockedDecrement()
> functions to perform
> increments and decrements which are guaranteed to be atomic.
> So the fix is in thread/win32/SDL_syssem.c:
> replace occurrences of --sem->count with InterlockedDecrement(&sem->count);
> and replace occurrences of ++sem->count with
> InterlockedIncrement(&sem->count);
I'm pretty sure the 32-bit ++ and -- operators are atomic on x86 architectures.
Are you sure this fixes the problem?
Thanks!
-Sam Lantinga, Lead Software Engineer, Blizzard Entertainment
More information about the SDL
mailing list