[python-uk] Extending Python - Asynchronous Callbacks

Duncan Grisby duncan at grisby.org
Fri Aug 15 13:27:34 EDT 2003


On Friday 15 August, "Phil Hornby" wrote:

> Me and another guy have done some stuff with Asynchronos callbacks from
> another thread...took a bit of playing to get it to work...We had several
> instances of long uptimes but after, sometimes, 3 days you would have a
> clash...the joys of concurrency...

[...]
>     PyEval_RestoreThread(this->pPythonCBThreadState); // pretend that we're
> the callback python thread

That will break on debug versions of Python 2.3, since it asserts that
a thread state always lives with the same thread.

I wrote some code in omniORBpy that maintains a cache of thread states
for callbacks, and copes with Python 2.3's new GIL access functions.
You can see the code from SourceForge's CVS. Apologies for the
ridiculously long URLs...

  http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/omniorb/omniORBpy/modules/Attic/pyThreadCache.h?rev=1.1.2.2&only_with_tag=omnipy2_develop&content-type=text/vnd.viewcvs-markup

  http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/omniorb/omniORBpy/modules/Attic/pyThreadCache.cc?rev=1.1.2.5&only_with_tag=omnipy2_develop&content-type=text/vnd.viewcvs-markup

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the python-uk mailing list