[omniORB] omniORBpy deadlock.

Teemu Torma teemu at torma.org
Tue Sep 27 15:33:25 BST 2005


On Tuesday 27 September 2005 13:48, Duncan Grisby wrote:
> There are plenty of places where omniORBpy has to call into Python
> while holding omni::internalLock, not just activate_object. I'm
> afraid that the Python interpreter lock has to come after
> internalLock in the partial lock order, so you have to release the
> Python interpreter lock before calling into any omniORB code.

I was afraid of that. 

The practical problem arises when using Boost.Python type converters to 
automatically handle object reference conversions to  and from C++ _var 
types.  This provides nice, automatic and exception safe way of passing 
object references to and from embedded C++ objects.  However, the 
destruction of _var happens inside Boost.Python whilst python 
interpreter lock is held, and if the object is released, 
omni::internalLock will be taken.  

Hmm, I have to find another approach to this.

Teemu



More information about the omniORB-list mailing list