Every couple of years I go looking for this
article by Ruedigger Ashe
on MSDN
about detecting the possibility of deadlocks within a
multithreaded application. The article, published in 1994, really
applies to any
concurrent locking application (i.e. database apps) and provides
another way to look at this type of application design. Now when
I go looking for this article, I've got it.