Hello,

In my threading.Thread(target=self.timed_event)...
I simplified timed_event to get a small sample that reproduce my
problem.

But actually, inside timed_event, I have a UDP communication with some
other software.
That's why I need that thread. It's a simple communication that
include a python Queue().
In that thread, when there is something in the Queue, it will be
pushed as a pyglet event for the Layers.

That's the idea ! It works fine in other python software I made.
In cocos, I do not know how to remove that thread. Is there some sort
of "pyglet thread" available for that purpose ?

My real timed_event function is more like:
while self.running:
    msg = self.my_queue.get()
    self.dispatch_event('on_data_update_from_thread', msg)

On Feb 9, 9:33 pm, claudio canepa <[email protected]> wrote:
> On Thu, Feb 9, 2012 at 6:22 AM, Philippe <[email protected]> wrote:
> > Hello again ..
>
> > I have an issue with the update of my sprites.
> > I pasted a small sample that reproduce my problem here:
> >http://pastebin.com/KrajS6RX
>
> > I set 3 ways of changing the mask of my_sprite.
>
> > 1- user can click on the sripte, it reduce the mask width => it works
> > well
>
> > 2- user can press a key on the Layer, the layer use a
> > pyglet.event.EventDispatcher to push an event, my_sprite receive it =>
> > it works well too !
>
> > 3- I go a thread, in my pyglet.event.EventDispatcher that push an
> > event every 5s. my_sprite receive it, but does not update itself in
> > the window.
> > I tried to add the self.draw() instruction, but got an error:
> > GLException: invalid operation
>
> > Any idea ?
> > If I move the mouse over the window, I got clean refresh, even for
> > -3-. I would like to have the same, but without moving the mouse
> > around!
>
> > thanks
>
> I don't really know about threads, but
>
> 1. I remember some comments in the line 'calls to openGL must be done from
> the same thread that acquired the openGL context'. So I don't expect that
> ultimately calling to .draw from other thread can work
>
> 2. Maybe is an artifact from your sample, but you are modifying self.gap
> from two different threads. That will explode at some time, when one thread
> is amidst of changing gap, the other thread kicks in and also tries to
> change gap
>
> 3. Usually code that can be called from multiple threads is explicitly
> announced as multithread safe ; I don't remember any such comments in the
> pyglet event docs.
>
> 4. Perhaps some of the posts here:
>
> http://search.gmane.org/search.php?group=gmane.comp.python.pyglet.use...
>
> may help you
>
> 5. Out of curiosity, what is your real use case for threading with pyglet ?
> Are you sure you are not killing flies with missiles ?
>
> --
> claudio

-- 
You received this message because you are subscribed to the Google Groups 
"cocos2d discuss" 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/cocos-discuss?hl=en.

Reply via email to