Threading, real or simulated?
Jp Calderone
exarkun at divmod.com
Wed Sep 21 19:32:29 EDT 2005
On Wed, 21 Sep 2005 18:23:33 -0500, Sam <sam at email-scan.com> wrote:
>I'm using Python 2.3.5 with pygtk 2.4.1, and I'm using the second threading
>approach from pygtk's FAQ 20.6 - invoking "gtk.gdk.threads_init()", and
>wrapping all gtk/gdk function calls with
>gtk.threads_enter()/gtk.threads_leave()
>
>I start a thread, via thread.Threading.start(). The thread then calls a
>particularly time consuming C function, from an extension module. I find
>that when the thread is running the C code, the GUI hangs even though I'm
>not inside the threads_enter/threads_leave territory.
>
Does the extension module release the GIL? It sounds like it does not. Of course, there are a dozen other mistakes that could be made which would have roughly this symptom. It's difficult to say which is the problem without actually seeing any code.
>It looks like thread.Threading() only simulates threading, by having the
>python interpreter multiplex between running threads. Is real threading
>possible, so that I do something time-consuming in the thread, without
>hanging the GUI?
>
Assuming you mean threading.Thread, this is a native thread. It is not a simulation. Something else is going wrong.
Jp
More information about the Python-list
mailing list