Problem solved... see below On 2 September 2014 12:05, Justin Mazzola Paluska <j...@editshare.com> wrote: > On 09/02/2014 05:08 AM, Adi Roiban wrote: [snip]
> if pid: > self.processEnded(status) > unregisterReapProcessHandler(pid, self) > elif pid == 0: > # Twisted seems to get stuck if pid is 0, which means that > # the child process hasn't changed status, but if called > # after SIGCHLD probably means that the child process is > # in the process of dying, but hasn't quite died yet. > # We'll try to kick the reactor to reap the processes > # again in a bit. > # > # We're testing specifically against 0 because pid may > # also be None in an error case. > def unstick(): > reapAllProcesses() > reactor.callLater(1, unstick) > > _BaseProcess.reapProcess = reapProcess > > ---- > > To use this, import your reactor and then call > workaround_reapProcess(reactor). > > Now that two of us have seen the same problem, we should probably file a > ticket in the bug tracker. > --Justin My quick fix was to only call reactor.callLater(self.reapProcess) and not to reap all processes ---------- I dig deeper and I found out that since I was using reactor.run(installSignalHandlers=False) _SIGCHLDWaker was not installed. I have switched to using just reactor.run() and the process is now killed. Thanks! -- Adi Roiban _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python