DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
A key technique is to encapsulate synchronization ''inside'' thread-safe classes. Every public member function should protect ''itself'' from concurrent access by using private locks or other synchronization objects. You can verify the synchronization of just that class in isolation. It's much easier to build complicated thread-safe code from simple pieces that you know to be individually thread-safe.
It's very dangerous to provide public access to locks because now to establish thread safety for a class you have to inspect ''every potential use'' of that class. Not to mention every change to or addition of code using the class. Did I mention losing your mind?