From f80cdaeecbe2f65d2b6026bd25923cca7c9ab455 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Mon, 23 Oct 2000 16:50:21 +0000 Subject: [PATCH] * sigproc.cc (proc_subproc): Correctly handle flags for WNOHANG case. --- winsup/cygwin/ChangeLog | 4 ++++ winsup/cygwin/sigproc.cc | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 036af4640..ae9c3187c 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +Mon Oct 23 12:44:35 2000 Christopher Faylor + + * sigproc.cc (proc_subproc): Correctly handle flags for WNOHANG case. + Mon Oct 23 10:00:00 2000 Corinna Vinschen * security.cc: Eliminate C++ comments throughout. diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 84279610e..50669556a 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -358,7 +358,7 @@ proc_subproc (DWORD what, DWORD val) w->next->pid = 0; if (clearing) w->next->status = -1; /* flag that a signal was received */ - else + else if (!(w->next->options & WNOHANG)) w->next->ev = NULL; if (!SetEvent (oldw)) system_printf ("couldn't wake up wait event %p, %E", oldw); @@ -1004,7 +1004,7 @@ stopped_or_terminated (waitq *parent_w, _pinfo *child) BOOL terminated; if ((terminated = child->process_state == PID_ZOMBIE) || - (w->options & WUNTRACED) && child->stopsig) + ((w->options & WUNTRACED) && child->stopsig)) { parent_w->next = w->next; /* successful wait. remove from wait queue */ w->pid = child->pid;