Don’t call an object from within a critical section

You as a client are not supposed to know the details of the implementation of the server object you are using.

In a multi-threaded environment this means you should assume that it is possible that the object’s method might block while servicing your call. If you are making this call from within a critical section it might be a long time before control returns back to your code. If this could cause you problems you should consider ways of either moving the call outside the critical section or spinning a thread to do the call, e.g. weave your way through the pitfalls of thread programming.