From 599221036f89a8f2540e9a591516ae310e22f256 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 9 Dec 2005 18:10:45 +0000 Subject: [PATCH] Fixed bug #35612 (iis6 Access Violation crash) --- NEWS | 1 + Zend/zend_execute_API.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index bca89ff4bb..6f7b7c64cc 100644 --- a/NEWS +++ b/NEWS @@ -24,6 +24,7 @@ PHP NEWS - Fixed many bugs in OCI8. (Tony) - Fixed crash and leak in mysqli when using 4.1.x client libraries and connecting to 5.x server. (Andrey) +- Fixed bug #35612 (iis6 Access Violation crash). (Dmitry, alacn.uhahaa) - Fixed bug #35594 (Multiple calls to getopt() may result in a crash). (rabbitt at gmail dot com, Ilia) - Fixed bug #35558 (mktime() interpreting 3 digit years incorrectly). (Ilia) diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index c0d585d835..865f566994 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 @@ -1254,7 +1255,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); } @@ -1265,6 +1266,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.40.0