Niall Douglas provides these notes:
The quick answer to this is: no.
The longer answer is that it can be patched to be so, but it's complex. You
will need to add custom lock/unlock wrapping of every time your code enters
Boost.Python (particularly every virtual function override) plus heavily
modify boost/python/detail/invoke.hpp
with custom unlock/lock wrapping of
every time Boost.Python enters your code. You must furthermore take care
to not unlock/lock when Boost.Python is invoking iterator
changes via invoke.hpp
.
There is a patched invoke.hpp
posted
on the C++-SIG mailing list archives and you can find a real implementation
of all the machinery necessary to fully implement this in the TnFOX project
at this SourceForge
project location.