[C++-SIG] Re: [Thread-SIG] Controlling python execution from C

Greg Stein gstein at lyra.org
Mon Nov 15 11:54:34 CET 1999


On Mon, 15 Nov 1999, Marcelo Kallmann wrote:
>...
> while ( true )
> {  for ( int i=0; i<n; i++ )
>     { restore_python_thread_state ( i ); // would call python functions to
> restore internal states, etc.
>        run_some_bytecodes_of_python_script ( script[i]  );  // would not block
> my loop, would not run all the script !
>     }
>   ....
> }
> 
> So, first of all, my question is : Is this possible to do ?

Nope. Sorry.

The Python interpreter runs to completion. It will not "unwind" and return
to your loop.

It uses *real* threads, and blocks on one to cause a context switch to
another ready-thread.

Well... more specifically, one thread grabs the global lock. Periodically,
it releases it and re-acquires it. In that short time-frame when it
doesn't hold the lock, another thread can wake up, grab it, and begin
execution for a while.

Cheers,
-g

--
Greg Stein, http://www.lyra.org/





More information about the Cplusplus-sig mailing list