Embedding Python. But not so easy.

Peter ptriller at soapwars.de
Mon Jan 19 21:37:46 CET 2009


Hi,

Right now I am in a project writing a Simulation engine, and we are right now 
in the process of evaluating a script engine.


The basic principle is a C++ engine simulating the environment and scriptable 
agents interacting with the environment.

But the current design has a special requirement to that scriptability and my 
current knowledge of the API of Python isolated two problems

1) Threads: the simulation is going to be run in a very parallel environment 
with several CPUs and http://docs.python.org/c-api/init.html#thread-state-and-
the-global-interpreter-lock there is a global lock mentioned. Does that mean 
that the python code can not benefit from this ?

2) The script has to hand back control to the C++ framework without increasing 
the C execution stack. and be able to resume the execution at a later point.

I try some pseudo code here to explain

// C++:
ctx = new ExecutionContext();

ctx->run();
while(ctx->stillRunning()) {
	otherStuff();
	ctx->resume();
}
......

// Python

y=21
...
..
# Here the execution is suspended und control handed back to the C++ code
suspend

y+=12


end




I hope that makes it clear. I did not see a way to implement this with the 
python interpreter. 

I am hoping to be proven wrong



Thanks in advance



Greets


Peter



More information about the Python-list mailing list