summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2011-01-28 11:17:29 +0000
committerCorinna Vinschen <corinna@vinschen.de>2011-01-28 11:17:29 +0000
commit93a4d9d97c367be5dae1ed6ccaa78c184f3a090b (patch)
tree73b60eef81a5385d8a62583d6630ccca9b0a4778
parent656df313e08a9ac4ef33c553285bb52d23c3e15f (diff)
downloadcygnal-93a4d9d97c367be5dae1ed6ccaa78c184f3a090b.tar.gz
cygnal-93a4d9d97c367be5dae1ed6ccaa78c184f3a090b.tar.bz2
cygnal-93a4d9d97c367be5dae1ed6ccaa78c184f3a090b.zip
* fhandler_socket.cc (fhandler_socket::wait_for_events): Call
pthread_testcancel in case of timeout to enable pthread_cancel on waiting thread.
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/fhandler_socket.cc2
2 files changed, 8 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 3f9ff8bf6..ec8896338 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::wait_for_events): Call
+ pthread_testcancel in case of timeout to enable pthread_cancel
+ on waiting thread.
+
2011-01-27 Corinna Vinschen <corinna@vinschen.de>
* include/features.h (__STDC_ISO_10646__): Move to newlib's
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index 85651c500..b8dc02748 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -626,6 +626,8 @@ fhandler_socket::wait_for_events (const long event_mask, const DWORD flags)
switch (WSAWaitForMultipleEvents (2, ev, FALSE, 50, FALSE))
{
case WSA_WAIT_TIMEOUT:
+ pthread_testcancel ();
+ /*FALLTHRU*/
case WSA_WAIT_EVENT_0:
break;