Update of /cvsroot/freevo/freevo/src In directory sc8-pr-cvs1:/tmp/cvs-serv3104
Modified Files: childapp.py Log Message: store return value for ChildApp2 Index: childapp.py =================================================================== RCS file: /cvsroot/freevo/freevo/src/childapp.py,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** childapp.py 13 Dec 2003 14:34:43 -0000 1.48 --- childapp.py 12 Jan 2004 19:52:46 -0000 1.49 *************** *** 10,13 **** --- 10,16 ---- # ----------------------------------------------------------------------- # $Log$ + # Revision 1.49 2004/01/12 19:52:46 dischi + # store return value for ChildApp2 + # # Revision 1.48 2003/12/13 14:34:43 outlyer # Make this clear; we are using stop_osd to figure out if we're playing *************** *** 244,248 **** return self.t1.isAlive() or self.t2.isAlive() ! def kill(self, signal=15): global __all_childapps__ --- 247,255 ---- return self.t1.isAlive() or self.t2.isAlive() ! ! def wait(self): ! return util.popen3.waitpid(self.child.pid) ! ! def kill(self, signal=15): global __all_childapps__ *************** *** 266,270 **** self.lock.acquire() # maybe child is dead and only waiting? ! if util.popen3.waitpid(self.child.pid): _debug_('done the easy way', 2) self.child = None --- 273,277 ---- self.lock.acquire() # maybe child is dead and only waiting? ! if self.wait(): _debug_('done the easy way', 2) self.child = None *************** *** 283,287 **** _debug_('childapp: Before wait(%s)' % self.child.pid) for i in range(20): ! if util.popen3.waitpid(self.child.pid): break time.sleep(0.1) --- 290,294 ---- _debug_('childapp: Before wait(%s)' % self.child.pid) for i in range(20): ! if self.wait(): break time.sleep(0.1) *************** *** 293,297 **** pass for i in range(20): ! if util.popen3.waitpid(self.child.pid): break time.sleep(0.1) --- 300,304 ---- pass for i in range(20): ! if self.wait(): break time.sleep(0.1) *************** *** 571,574 **** --- 578,584 ---- rc.post_event(Event(PLAY_START, arg=self.item)) + # return status of the child + self.status = 0 + # start the child ChildApp.__init__(self, app, debugname, doeslogging) *************** *** 579,582 **** --- 589,600 ---- + def wait(self): + pid, status = os.waitpid(self.child.pid, os.WNOHANG) + if pid == self.child.pid: + self.status = status + return True + return False + + def stop(self, cmd=''): try: ------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog