[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