From 9789cdffde8bd365ca8fa94e924c870fa043e28a Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 27 Nov 2017 13:38:21 +0100 Subject: [PATCH] cygwin: cleanup fhandler_socket::release_events Signed-off-by: Corinna Vinschen --- winsup/cygwin/fhandler_socket.cc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc index b8e684fd8..cc75b9719 100644 --- a/winsup/cygwin/fhandler_socket.cc +++ b/winsup/cygwin/fhandler_socket.cc @@ -801,14 +801,16 @@ fhandler_socket::wait_for_events (const long event_mask, const DWORD flags) void fhandler_socket::release_events () { - HANDLE evt = wsock_evt; - HANDLE mtx = wsock_mtx; + if (WaitForSingleObject (wsock_mtx, INFINITE) != WAIT_FAILED) + { + HANDLE evt = wsock_evt; + HANDLE mtx = wsock_mtx; - LOCK_EVENTS; - wsock_evt = wsock_mtx = NULL; - } ReleaseMutex (mtx); /* == UNLOCK_EVENTS, but note using local mtx here. */ - NtClose (evt); - NtClose (mtx); + wsock_evt = wsock_mtx = NULL; + ReleaseMutex (mtx); + NtClose (evt); + NtClose (mtx); + } } /* Called from net.cc:fdsock() if a freshly created socket is not