[IPython-dev] A plea for help with a threading bug...
Fernando.Perez at colorado.edu
Mon Mar 21 18:30:04 EST 2005
ipython-dev-bounces at scipy.net wrote:
> The attached message has been automatically discarded.
[ Originally sent by Yariv, reforwarded by me. The non-quoted stuff are my
I've whitelisted one address for you, but you might want to just subscribe if
you use many.
> Subject: Re: [Fwd: Re: [IPython-dev] A plea for help with a threading bug...]
> From: Yariv Ido <yariv at vipe.technion.ac.il>
> Date: Sun, 20 Mar 2005 16:04:02 +0200
> To: Fernando Perez <Fernando.Perez at colorado.edu>
> CC: Yariv Ido <yariv at vipe.stud.technion.ac.il>, IPython-dev List
> <ipython-dev at scipy.net>
> Well, first of all, the self.gtk.threads_init() call should be made on
> win32 systems too. As far as I know, this isn't a platform specific
> Second, in order to avoid lockups ( Which occur if you do call
> threads_init() on win32 ), you need to wrap the call to gtk's mainloop
> with threads_enter() and threads_leave() calls:
> self.gtk_mainloop() -> self.gtk_mainloop()
> In theory, every call to some gtk functionality made outside the main
> thread should also be wrapped with this lock mechanism. Unfortunately, I
> think it's not trivial in the case of IPython, especially when the user
> decides to create new threads which mess around with GTK's objects... I
> don't know what are the odds of that happening...
Well, I can at least wrap the calls _I_ make in the above. I just tried it,
and I see no ill effects. As for protecting the user's calls, I don't know...
Unless someone tells me otherwise (I know so little about threads and GTK,
that I rely on your collective wisdom here), this change will go into CVS.
> There's a short explanation about all this at:
> On Sat, 2005-03-19 at 12:53 -0700, Fernando Perez wrote:
>>>3. I've noticed that IPython's code has no
>>>threads_enter()/threads_leave(). I don't know if it would solve this
>>>particular problem, but it may fix the threads_init() call in win32 (And
>>>thus fix the tremendous slowdown as reported on the bug tracker).
>>Could you be more specific on where this should go? And is there anyway
>>anyone could test this on win32 and let me know if it helps any? I'll be
>>happy to add the changes, but only if I know they will help, and where to put
More information about the IPython-dev