I just read EVE Online's presentation on their Stackless Python usage. They have a very cool idea, they combine stackless python's main tasklet and the actual C++ message loop by emulating a python function by having the main message loop function take PyObjects as parameters and returning a PyObject.
PyObject *myApp = new EveApp();
PyStackless_CallMethod_Main(myApp, “WinMain”, 0);
This seems like a great solution to me. There should be no thread or deadlock issues.
The only thing I wonder about is if there is a performance benefit from having the logic and engine running on separate threads. But I imagine the methods needed to communicate between python and wge, each on separate threads, would induce quite a bit of overhead. Also with the max amount of cores commonly available is about two, I think threading different parts of WGE would provide better performance benefits. Already the sound system is threaded. Once physics are added, I believe bullet should take advantage of quite a few threads. Ogre background resource loading too. Also, if anyone wants to implement networking on their game, another thread. So already it seems like enough is parallel to take advantage of today's processors.