This repository has been archived by the owner on Apr 12, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Process.on_sigchld do not work when Process.join was called #6
Labels
Comments
I'm fixing 🔧 the unit tests (3 are failing). Pull request incoming! |
ggreg
pushed a commit
that referenced
this issue
Mar 18, 2014
Process.join() now disables Process.on_sigchld() by restablishing the default handler SIG_DFL. Process.on_sigchld() calls Process.join() to avoid calling os.waitpid() in two difference places because it could interrupted and then resumed in the wrong place.
ggreg
pushed a commit
that referenced
this issue
Mar 19, 2014
Process.join() now disables Process.on_sigchld() by restablishing the default handler SIG_DFL. Process.on_sigchld() calls Process.join() to avoid calling os.waitpid() in two difference places because it could interrupted and then resumed in the wrong place.
ggreg
pushed a commit
that referenced
this issue
Mar 19, 2014
Process.join() now disables Process.on_sigchld() by restablishing the default handler SIG_DFL. Process.on_sigchld() calls Process.join() to avoid calling os.waitpid() in two difference places because it could interrupted and then resumed in the wrong place.
ggreg
pushed a commit
that referenced
this issue
Mar 21, 2014
Process.join() now disables Process.on_sigchld() by restablishing the default handler SIG_DFL. Process.on_sigchld() calls Process.join() to avoid calling os.waitpid() in two difference places because it could interrupted and then resumed in the wrong place.
ggreg
pushed a commit
that referenced
this issue
Mar 21, 2014
Process.join() now disables Process.on_sigchld() by restablishing the default handler SIG_DFL. Process.on_sigchld() calls Process.join() to avoid calling os.waitpid() in two difference places because it could interrupted and then resumed in the wrong place.
ggreg
pushed a commit
that referenced
this issue
Mar 21, 2014
Process.join() now disables Process.on_sigchld() by restablishing the default handler SIG_DFL. Process.on_sigchld() calls Process.join() to avoid calling os.waitpid() in two difference places because it could interrupted and then resumed in the wrong place.
ggreg
pushed a commit
that referenced
this issue
Mar 24, 2014
Process.join() now disables Process.on_sigchld() by restablishing the default handler SIG_DFL. Process.on_sigchld() calls Process.join() to avoid calling os.waitpid() in two difference places because it could interrupted and then resumed in the wrong place.
ggreg
pushed a commit
that referenced
this issue
Mar 24, 2014
Process.join() now disables Process.on_sigchld() by restablishing the default handler SIG_DFL. Process.on_sigchld() calls Process.join() to avoid calling os.waitpid() in two difference places because it could interrupted and then resumed in the wrong place.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
There is a unexpected behavior when calling
Process.join()
at almost the same time the child process exits. I added the following test:And added some debug strings in
ProcessOpen.poll()
andProcess.on_sigchld()
:When I execute the test, I get:
It means that the parent process enters
ProcessOpen.poll()
and is interrupted by theSIGCHLD
signal inos.waitpid()
. TheProcess.on_sigchld()
signal handler is executed. However when it evaluatesos.waitpid()
, it returns the execution back to the call ofos.waitpid()
insideProcessOpen.poll()
. Hence the remaining code ofProcess.on_sigchld()
is never called.The text was updated successfully, but these errors were encountered: