Hi! 

some time ago (half year or so) I submited this bug ...
I cleaned the patch (at last ;)) - it is in attached file.
It applies to php-4.2.3 and also to php-4.3.0RC3 (with offset warnings
but works ok).
Please someone add it to main version or give me CVS account so I could
do it by myself.

Regards,
Wojtek
diff -urN php-4.2.3/Zend/zend_execute.c php-4.2.3-TO/Zend/zend_execute.c
--- php-4.2.3/Zend/zend_execute.c       Sun Jan  6 16:21:09 2002
+++ php-4.2.3-TO/Zend/zend_execute.c    Wed Dec 18 08:51:55 2002
@@ -1047,7 +1047,7 @@
        }
 
        while (1) {
-#ifdef ZEND_WIN32
+#if defined(ZEND_WIN32) || defined(ZTS)
                if (EG(timed_out)) {
                        zend_timeout(0);
                }
diff -urN php-4.2.3/Zend/zend_execute_API.c php-4.2.3-TO/Zend/zend_execute_API.c
--- php-4.2.3/Zend/zend_execute_API.c   Sun Jan  6 16:21:09 2002
+++ php-4.2.3-TO/Zend/zend_execute_API.c        Wed Dec 18 08:57:33 2002
@@ -152,7 +152,7 @@
        EG(orig_error_reporting) = EG(error_reporting);
 
        EG(full_tables_cleanup) = 0;
-#ifdef ZEND_WIN32
+#if defined(ZEND_WIN32) || defined(ZTS)
        EG(timed_out) = 0;
 #endif
 }
@@ -667,6 +667,14 @@
                          EG(timeout_seconds), EG(timeout_seconds) == 1 ? "" : "s");
 }
 
+#ifdef ZTS
+static void zend_timeout_ZTS(int dummy)
+{
+       TSRMLS_FETCH();
+
+       EG(timed_out)=1;
+}
+#endif
 
 #ifdef ZEND_WIN32
 static LRESULT CALLBACK zend_timeout_WndProc(HWND hWnd, UINT message, WPARAM wParam, 
LPARAM lParam) 
@@ -786,7 +794,11 @@
                t_r.it_value.tv_usec = t_r.it_interval.tv_sec = 
t_r.it_interval.tv_usec = 0;
 
                setitimer(ITIMER_PROF, &t_r, NULL);
+#ifdef ZTS
+               signal(SIGPROF, zend_timeout_ZTS);
+#else
                signal(SIGPROF, zend_timeout);
+#endif
                sigemptyset(&sigset);
                sigaddset(&sigset, SIGPROF);
                sigprocmask(SIG_UNBLOCK, &sigset, NULL);
diff -urN php-4.2.3/Zend/zend_globals.h php-4.2.3-TO/Zend/zend_globals.h
--- php-4.2.3/Zend/zend_globals.h       Thu Aug 15 02:25:57 2002
+++ php-4.2.3-TO/Zend/zend_globals.h    Wed Dec 18 08:58:27 2002
@@ -164,7 +164,7 @@
        /* for extended information support */
        zend_bool no_extensions;
 
-#ifdef ZEND_WIN32
+#if defined(ZEND_WIN32) || defined (ZTS)
        zend_bool timed_out;
 #endif
 

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to