From 57f7f1952c239ebbb2695d069c1d25147ed686e0 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 9 Dec 2005 18:09:08 +0000 Subject: [PATCH] Fixed bug #35612 (iis6 Access Violation crash) --- Zend/zend_execute_API.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 5aecf8671f..028ba9e5ea 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -46,6 +46,7 @@ ZEND_API zend_fcall_info_cache empty_fcall_info_cache = { 0, NULL, NULL, NULL }; 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 @@ -1346,7 +1347,7 @@ static unsigned __stdcall timeout_thread_proc(void *pArgs) 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); } @@ -1357,6 +1358,10 @@ void zend_shutdown_timeout_thread() return; } PostThreadMessage(timeout_thread_id, WM_QUIT, 0, 0); + + /* Wait for thread termination */ + WaitForSingleObject(timeout_thread_handle, 5000); + CloseHandle(timeout_thread_handle); } #endif -- 2.50.1