On Sat, Apr 19, 2008 at 1:17 AM, Zachrahan <[EMAIL PROTECTED]> wrote:
>
>  Hello,
>
>  I've gotten pretty well along with my project that involves running a
>  pyglet window in a background thread. Now all that I need to implement
>  is communicating with background windows. My strategy here is to
>  figure out a way to send events to the windows, and have them respond
>  as part of the event loop. That way, the event is handled in the
>  background thread (good!). Just calling the relevant event handler
>  from the foreground thread leads to the code being called in that
>  thread's context, leading to seg-faults and the like.
>
>  So -- how can I, given a Window object, send that object an event? I
>  noticed that windows seem to have an "_event_queue" attribute, which
>  would be perfect. But just putting an event into the queue doesn't
>  really do anything. Calling dispatch_event() on the window would seem
>  to be the right thing to put the event into the queue, but it doesn't,
>  since it seems that the window's _enable_event_queue attribute gets
>  unconditionally set to False during the _setup() call in
>  pyglet.app.BaseEventLoop. In this case, calling dispatch_event() then
>  causes the event code to be run directly in the foreground thread.

_enable_event_queue is an internal flag indicating the pyglet.app
event loop is _not_ being used (which requires the Window to be more
careful about when events can be dispatched).

>
>  Anyhow, I of course have basically no idea how all of this fits
>  together internally. Is there a simple and safe way to "send" an event
>  to a Window object? If not, I'll just use a separate queue for sending
>  events to the background thread, and install a function to
>  periodically check the queue and dispatch events there.
>

When I say pyglet is not thread-safe, I really mean it!  You'll need
to provide this functionality yourself.  Don't forget to use a
thread-safe queue.

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
-~----------~----~----~----~------~----~------~--~---

Reply via email to