 <p>Yes it is valid to enter the same critical section while already inside it. From <a href="http://msdn.microsoft.com/en-us/library/ms682608.aspx">the docs</a>:</p> <blockquote> <p>After a thread has ownership of a critical section, it can make additional calls to EnterCriticalSection or TryEnterCriticalSection without blocking its execution. This prevents a thread from deadlocking itself while waiting for a critical section that it already owns. The thread enters the critical section each time EnterCriticalSection and TryEnterCriticalSection succeed. A thread must call LeaveCriticalSection once for each time that it entered the critical section.</p> </blockquote>