On 11/09/2007, at 11:54 AM, brian.jorgensen wrote:
>
> Hi,
>
> Over at SymPy we've found a problem with my ManagedWindow on OS X. Try
> this:
>
> m = ManagedWindow()
> while not m.has_exit: pass
> m = ManagedWindow()
>
> Then close the first window. The second ManagedWindow will stop
> responding (beach ball of death cursor). I've instrumented the event
> loop in managed_window.py, and found that it continues to iterate, so
> I do not think it could be a thread sync issue. No exceptions are
> raised.
>
> I've tried my best to trace it into carbon/__init__.py, but I haven't
> been able to find anything. Unfortunately, I know nothing about Carbon
> (I've only had a mac for a few weeks and haven't had much opportunity
> to code in that time). Instrumenting dispatch_events, I did notice
> that events stop when the beach ball of death starts. Also, if I do:
>
> m = ManagedWindow()
> m2 = ManagedWindow()
> while not m.has_exit: pass
> m3 = ManagedWindow()
>
> I can see that the windows become unresponsive only when one is
> closed, and then another is created (before any are closed, you can
> create as many as you want without problems). I'm not sure this is a
> pyglet problem, but I'm stuck, so any ideas you have would be
> appreciated.
Hmm. I can't reproduce the problem with single-threaded code::
from pyglet import window
def run(w):
while not w.has_exit:
w.dispatch_events()
w.clear()
w.flip()
w.close()
w1 = window.Window()
run(w1)
w2 = window.Window()
run(w2)
I'll have to look closer/again at ManagedWindow.. nothing comes
immediately to mind.
Alex.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pyglet-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/pyglet-users?hl=en
-~----------~----~----~----~------~----~------~--~---