Embedding: Is it possible to limit number of virtual instructions executed?

Terry Reedy tjreedy at udel.edu
Sat Nov 1 03:31:30 EDT 2008


juliangrendell at gmail.com wrote:
> Hi experts-
> 
> I have a potential use case of embedding Python where it must co-
> operate with the host c/c++ application in a single thread.  That is,
> the c code and python interpreter need to cooperate and time share, or
> yield to each other.
> 
> The main loop would need to do something like:
> 
> check for events
> for events with c handlers:
>     process in c
> for events with python handlers:
>     add to queue
> if have time:
>     python_continue_execution(number of vm instructions)
> 
> The goal is to be able to set some limit on the amount of time in the
> interpreter in each loop, and not rely on the python side code.  (I
> realise this will not be absolute, especially if the python code calls
> c extensions, but it will be more straight forward for the users.)
> 
> Does anyone have any suggestions for how this could be achieved?

Does this help at all?
 >>> help(sys.setcheckinterval)
Help on built-in function setcheckinterval in module sys:

setcheckinterval(...)
     setcheckinterval(n)

     Tell the Python interpreter to check for asynchronous events every
     n instructions.  This also affects how often thread switches occur.

I *don't* know any more that this.

tjr




More information about the Python-list mailing list