static WNDCLASS wc;
static HWND timeout_window;
static HANDLE timeout_thread_event;
+static HANDLE timeout_thread_handle;
static DWORD timeout_thread_id;
static int timeout_thread_initialized=0;
#endif
void zend_init_timeout_thread()
{
timeout_thread_event = CreateEvent(NULL, FALSE, FALSE, NULL);
- _beginthreadex(NULL, 0, timeout_thread_proc, NULL, 0, &timeout_thread_id);
+ timeout_thread_handle = _beginthreadex(NULL, 0, timeout_thread_proc, NULL, 0, &timeout_thread_id);
WaitForSingleObject(timeout_thread_event, INFINITE);
}
return;
}
PostThreadMessage(timeout_thread_id, WM_QUIT, 0, 0);
+
+ /* Wait for thread termination */
+ WaitForSingleObject(timeout_thread_handle, 5000);
+ CloseHandle(timeout_thread_handle);
}
#endif