From abf60784bea59b12dbbb6392fe8a37bbff6782a6 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 9 Jun 2005 05:14:02 +0000 Subject: [PATCH] * thread.cc (cancelable_wait): No-op change to make sure that res is always a valid WFMO return. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/thread.cc | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 6b0a04d2c..e73057c30 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2005-06-09 Christopher Faylor + + * thread.cc (cancelable_wait): No-op change to make sure that res is + always a valid WFMO return. + 2005-06-09 Christopher Faylor Change pthread::cancelable_wait to just cancelable_wait, throughout. diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 9a3c7af48..1ba384794 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -623,7 +623,7 @@ cancelable_wait (HANDLE object, DWORD timeout, const bool do_cancel, cancel_n = (DWORD) -1; else { - cancel_n = num++; + cancel_n = WAIT_OBJECT_0 + num++; wait_objects[cancel_n] = thread->cancel_event; } @@ -632,14 +632,13 @@ cancelable_wait (HANDLE object, DWORD timeout, const bool do_cancel, sig_n = (DWORD) -1; else { - sig_n = num++; + sig_n = WAIT_OBJECT_0 + num++; wait_objects[sig_n] = signal_arrived; } while (1) { res = WaitForMultipleObjects (num, wait_objects, FALSE, timeout); - res -= WAIT_OBJECT_0; if (res == cancel_n) { if (do_cancel)