diff options
author | Christopher Faylor <me@cgf.cx> | 2005-06-09 05:14:02 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-06-09 05:14:02 +0000 |
commit | abf60784bea59b12dbbb6392fe8a37bbff6782a6 (patch) | |
tree | a631c4abb1719f903ebc147b626ac2200bc8e259 | |
parent | ed364fa9fbf461ef2f1b17ba17f210dd1066f6b3 (diff) | |
download | cygnal-abf60784bea59b12dbbb6392fe8a37bbff6782a6.tar.gz cygnal-abf60784bea59b12dbbb6392fe8a37bbff6782a6.tar.bz2 cygnal-abf60784bea59b12dbbb6392fe8a37bbff6782a6.zip |
* thread.cc (cancelable_wait): No-op change to make sure that res is always a
valid WFMO return.
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | 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,5 +1,10 @@ 2005-06-09 Christopher Faylor <cgf@timesys.com> + * thread.cc (cancelable_wait): No-op change to make sure that res is + always a valid WFMO return. + +2005-06-09 Christopher Faylor <cgf@timesys.com> + Change pthread::cancelable_wait to just cancelable_wait, throughout. * thread.h (cw_sig_wait): New enum. (fast_mutex::lock): Use cancelable_wait with resumable signal. 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) |