Alex Ionescu wrote:
Joseph Galbraith wrote:
ion@svn.reactos.com wrote:
- DPRINT("Waiting on Critical Section: %x\n", CriticalSection);
- if (CriticalSection->DebugInfo)
CriticalSection->DebugInfo->EntryCount++;
I'm just reading the diffs here, so I could be way off, but shouldn't this use an InterlockedIncrement... otherwise you could get a context switch between in the middle of your increment to another threading attempting to lock the critical section. It is just debug information, but still...
I suppose that makes sense... I'll look into it.
Also, looking at the rest of the code, I notice that spin count doesn't appear to be implemented.
No, not as of now. It was based on WINE code which doesn't implement this yet (AFAIK).
Yes it does. http://cvs.winehq.org/cvsweb/~checkout~/wine/dlls/ntdll/critsection.c?rev=1....
I have been optimizing it and adding more feature to make it stabler, so spin lock support for MP builds was on my list. Thanks for your patch... I'll take a look at it.
It would be good if someone could implement the stack backtrace capture functions as we could then remove critsec debugging hacks from all over the wine tree.
Rob