Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2011-05-01 21:42:41 +0400
committerCorinna Vinschen <corinna@vinschen.de>2011-05-01 21:42:41 +0400
commita91ac4dca9f8edca7945593509267beff5a504fe (patch)
treeab305094a97533163362a0efcdb93ac9df1b8270 /winsup/cygwin/thread.cc
parent1112b2c38f39f33daefd03bb1eebe9e1f84eabaf (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.cc13
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 ()
{