예제 #1
0
 def wait(self, timeout=None):
     if self.returncode is None:
         if timeout is not None:
             from billiard.connection import wait
             if not wait([self.sentinel], timeout):
                 return None
         # This shouldn't block if wait() returned successfully.
         return self.poll(os.WNOHANG if timeout == 0.0 else 0)
     return self.returncode
예제 #2
0
 def wait(self, timeout=None):
     if self.returncode is None:
         if timeout is not None:
             from billiard.connection import wait
             if not wait([self.sentinel], timeout):
                 return None
         # This shouldn't block if wait() returned successfully.
         return self.poll(os.WNOHANG if timeout == 0.0 else 0)
     return self.returncode
예제 #3
0
 def poll(self, flag=os.WNOHANG):
     if self.returncode is None:
         from billiard.connection import wait
         timeout = 0 if flag == os.WNOHANG else None
         if not wait([self.sentinel], timeout):
             return None
         try:
             self.returncode = forkserver.read_unsigned(self.sentinel)
         except (OSError, EOFError):
             # The process ended abnormally perhaps because of a signal
             self.returncode = 255
     return self.returncode