diff options
Diffstat (limited to 'win')
-rw-r--r-- | win/tclWinSock.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/win/tclWinSock.c b/win/tclWinSock.c index 8f2028d..9fa01c9 100644 --- a/win/tclWinSock.c +++ b/win/tclWinSock.c @@ -460,14 +460,13 @@ TclpFinalizeSockets(void) if (tsdPtr != NULL) { if (tsdPtr->socketThread != NULL) { if (tsdPtr->hwnd != NULL) { - PostMessage(tsdPtr->hwnd, SOCKET_TERMINATE, 0, 0); - - /* - * Wait for the thread to exit. This ensures that we are - * completely cleaned up before we leave this function. - */ - - WaitForSingleObject(tsdPtr->readyEvent, INFINITE); + if (PostMessage(tsdPtr->hwnd, SOCKET_TERMINATE, 0, 0)) { + /* + * Wait for the thread to exit. This ensures that we are + * completely cleaned up before we leave this function. + */ + WaitForSingleObject(tsdPtr->readyEvent, INFINITE); + } tsdPtr->hwnd = NULL; } CloseHandle(tsdPtr->socketThread); |