]> granicus.if.org Git - php/commitdiff
Start timiout thread on Windows only if necessary
authorDmitry Stogov <dmitry@php.net>
Fri, 10 Nov 2006 11:51:55 +0000 (11:51 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 10 Nov 2006 11:51:55 +0000 (11:51 +0000)
Zend/zend_execute_API.c

index 5dc9625d7a4d23e8ac86d271acbe20e469486dd9..762b2c9fe8b2aaadb803e12ce4fdc6ea69374276 100644 (file)
@@ -1521,6 +1521,9 @@ void zend_set_timeout(long seconds)
        TSRMLS_FETCH();
 
        EG(timeout_seconds) = seconds;
+       if(!seconds) {
+               return;
+       }
 #ifdef ZEND_WIN32
        if (timeout_thread_initialized==0 && InterlockedIncrement(&timeout_thread_initialized)==1) {
                /* We start up this process-wide thread here and not in zend_startup(), because if Zend
@@ -1559,7 +1562,9 @@ void zend_set_timeout(long seconds)
 void zend_unset_timeout(TSRMLS_D)
 {
 #ifdef ZEND_WIN32
-       PostThreadMessage(timeout_thread_id, WM_UNREGISTER_ZEND_TIMEOUT, (WPARAM) GetCurrentThreadId(), (LPARAM) 0);
+       if(timeout_thread_initialized) {
+               PostThreadMessage(timeout_thread_id, WM_UNREGISTER_ZEND_TIMEOUT, (WPARAM) GetCurrentThreadId(), (LPARAM) 0);
+       }
 #else
 #      ifdef HAVE_SETITIMER
        {