def managed_nspopen(*args, **kwds): proc = NSPopen(*args, **kwds) try: yield proc finally: if proc.poll() is None: # send SIGKILL to the process and wait for it to die if it's still # running proc.kill() proc.communicate() # release proxy process resourecs proc.release()
def managed_nspopen(*args, **kwds): proc = NSPopen(*args, **kwds) try: yield proc finally: if proc.poll() is None: # send SIGKILL to the process and wait for it to die if it's still # running proc.kill() # If it's not dead after 2 seconds we throw an error proc.communicate(timeout=2) # release proxy process resourecs proc.release()