Problem with embedded python
gmcm at hypernet.com
Mon Jun 14 16:02:48 CEST 1999
> I have embedded python into a win32 c++ application using
> PyRun_SimpleFile. This executes a python script at regular (25 times
> a second-ish) intervals. Also included in this C++ application is a
> procedure which handles the window messages, which I have also tried
> to script. Unfortunately, running any script in this function
> crashes windows with a nasty protection fault. Do I need to run my
> scripts on seperate threads... or in different interpreters. or is
> this genuinely a bug..
It seems likely that the procedure handling windows messages is being
executed by a different thread than the one running PyRun_SimpleFile.
In which case you will need to establish 2 thread states when you
start up Python, and use one for each purpose. If the work they are
doing is completely disjoint, you could use 2 different interpreter
states. But Python needs to know that it is operating in a threaded
environment, and has to build objects which shadow the OS threads.
The hard part is getting it started; after that it should just work.
And it's not actually hard to get it started, just confusing. Check
out the pysvr demo. You should probably direct further questions to
the Thread SIG.
More information about the Python-list