I\'ve written a test of what I think should be a valid case for a deadlock. It appears that once the lock has been acquired by an instance of the a class, that
Locks in .NET are reentrant. Only acquisitions from other threads are blocked. When the same thread locks the same object multiple times, it simply increments a counter, and decrements it when released. When the counter hits zero, the lock is actually released for access from other threads.