summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/sigproc.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/sigproc.h')
-rw-r--r--winsup/cygwin/sigproc.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h
index 2c027a9e4..21293ccb9 100644
--- a/winsup/cygwin/sigproc.h
+++ b/winsup/cygwin/sigproc.h
@@ -88,11 +88,12 @@ DWORD cygWFMO (DWORD n, DWORD howlong, ...)
va_start (ap, howlong);
HANDLE w4[n + 2];
va_start (ap, howlong);
- unsigned i;
- for (i = 0; i < n; i++)
+ for (unsigned i = 0; i < n; i++)
w4[i] = va_arg (ap, HANDLE);
- w4[i++] = signal_arrived;
- w4[i++] = pthread::get_cancel_event ();
+ w4[n++] = signal_arrived;
+ w4[n++] = pthread::get_cancel_event ();
+ if (!w4[n - 1])
+ n--;
return WaitForMultipleObjects (n, w4, FALSE, howlong);
}
#endif