Dischi,

I have seen a problem with Childapp2. Basically if the program ends
before you can get into the loop polling it. Then it will crash on the
wait. I can trigger this pretty realiably in the commands plugin with a
script that runs basically a bunch of echo statements.

Mike

On Sun, 2004-02-15 at 06:28, Dirk Meyer wrote:
> Gustavo Sverzut Barbieri wrote:
> >  --- Dirk Meyer <[EMAIL PROTECTED]> escreveu: 
> >> Gustavo Sverzut Barbieri wrote:
> >> > Hello guys,
> >> >
> >> > I'm implementing MPAV (MPlayer Audio Visualization,
> >> > http://gsbarbieri.sytes.net/mpav/) but I found some issues:
> >> >
> >> > - childapp.py: Sometimes poll() is called before the child
> >> __init__()
> >> > is finished, so many times it breaks because there's no t1 or t2
> >> > attributes (isAlive()).
> >> > I solved this declaring "ready=False" as class attribute and
> >> setting it
> >> > to True at the end of __init__(). Then isAlive() must check if it's
> >> > ready. It's the right solution?
> >> 
> >> No, I guess we should better find out why this happens. Do you use
> >> ChildApp or ChildApp2? For ChildApp2 this shouldn't happen because
> >> there is not thread to be a problem at this point.
> >
> > I'm using ChildApp2. I don't know its internals, just based my usage on
> > video/plugins/mplayer.py
> >    The problem is that sometimes it breaks in isAlive(), which looks
> > for .t1, which is not available. Browsing the code I see it's only
> > created in ChildApp, which is inherited by ChildApp2 so the problem
> > could just be there... To figure it out I put prints in the begin and
> > end of the constructor and one in isAlive, together with a
> > traceback.print_stack(). Then I see "Constructor started. isAlive()
> > called from poll(). Constructor ended"
> 
> Do you start ChildApp2 from a thread? If so, do not do it, it doesn't
> work. If not, I can't see the bug. The main threads starts Childapp2,
> this one starts ChildApp, this creates the threads. Since poll()
> should only be called from the main thread, the main thread can't do
> it until the constructor is done and t1 and t2 are there. 
> 
> >> > - The second issue is with stop_osd. I need to stop the osd, since
> >> my
> >> > app uses SDL and can display in framebuffer and dxr3. I'm using
> >> > ChildApp2 and leave stop_osd=2, so it must stop the osd when
> >> > OSD_STOP_WHEN_PLAYING=1 but instead of just stop the osd, it exits
> >> and
> >> > leaves mplayer playing!
> >> 
> >> add some 'print' debug to see why. What do you mean with 'just
> >> exits'?
> >> Freevo stops?
> >
> > Yes, freevo stops. Quit. The only 'python' thread left is the one that
> > called mplayer.
> 
> Strange, maybe it tries to restart the osd and crashes? In
> childapp.ChildApp2, add some print statement at the stop and restart
> osd functions to see if they are called correct. 
> 
> >    NOTE: I don't have LIRC, just the keyboard. Maybe it relies on LIRC
> > thread or something?
> 
> No
> 
> 
> Dischi
-- 
Mike Ruelle
[EMAIL PROTECTED]
http://world.std.com/~mruelle/



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to