I see what you're saying. But I feel it might still be less error prone to wrap the locks in a try-finally clause, since it's a pretty standard pattern and if we decide to throw exceptions in a method, we won't have to think about releasing the lock correctly.