diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2011-05-01 21:42:41 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2011-05-01 21:42:41 +0400 |
commit | a91ac4dca9f8edca7945593509267beff5a504fe (patch) | |
tree | ab305094a97533163362a0efcdb93ac9df1b8270 /winsup/cygwin/thread.cc | |
parent | 1112b2c38f39f33daefd03bb1eebe9e1f84eabaf (diff) |
* fhandler_windows.cc (fhandler_windows::read): Use
pthread::get_cancel_event to fetch thread's cancel event.
* flock.cc (lf_setlock): Ditto.
* posix_ipc.cc (ipc_cond_timedwait): Ditto.
* thread.cc (pthread::get_cancel_event): New static method.
* thread.h (pthread::get_cancel_event): Declare.
Diffstat (limited to 'winsup/cygwin/thread.cc')
-rw-r--r-- | winsup/cygwin/thread.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index b4a9b2982..3de53f6fa 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -885,6 +885,19 @@ pthread::testcancel () } } +/* Return cancel event handle if it exists *and* cancel is not disabled. + This function is supposed to be used from other functions which are + cancelable and need the cancel event in a WFMO call. */ +HANDLE +pthread::get_cancel_event () +{ + pthread_t thread = pthread::self (); + + return (thread && thread->cancel_event + && thread->cancelstate != PTHREAD_CANCEL_DISABLE) + ? thread->cancel_event : NULL; +} + void pthread::static_cancel_self () { |