cvs: ZendEngine2(PHP_5_3) / zend_execute_API.c
[email protected] ("Rasmus Lerdorf")
| Newsgroups | php.zend-engine.cvs |
|---|---|
| Message-ID | <cvsrasmus1205940137@cvsserver> |
rasmus Wed Mar 19 15:22:17 2008 UTC
Modified files: (Branch: PHP_5_3)
/ZendEngine2 zend_execute_API.c
Log:
Make sure we set the signal handler when reset_signals is true, regardless
of the actual timeout value.
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute_API.c?r1=1.331.2.20.2.24.2.31&r2=1.331.2.20.2.24.2.32&diff_format=u
Index: ZendEngine2/zend_execute_API.c
diff -u ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.31 ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.32
--- ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.31 Tue Mar 18 21:42:50 2008
+++ ZendEngine2/zend_execute_API.c Wed Mar 19 15:22:17 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute_API.c,v 1.331.2.20.2.24.2.31 2008/03/18 21:42:50 rasmus Exp $ */
+/* $Id: zend_execute_API.c,v 1.331.2.20.2.24.2.32 2008/03/19 15:22:17 rasmus Exp $ */
#include <stdio.h>
#include <signal.h>
@@ -1532,9 +1532,7 @@
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
@@ -1542,25 +1540,28 @@
*/
zend_init_timeout_thread();
}
- PostThreadMessage(timeout_thread_id, WM_REGISTER_ZEND_TIMEOUT, (WPARAM) GetCurrentThreadId(), (LPARAM) seconds);
+ if(seconds) PostThreadMessage(timeout_thread_id, WM_REGISTER_ZEND_TIMEOUT, (WPARAM) GetCurrentThreadId(), (LPARAM) seconds);
#else
# ifdef HAVE_SETITIMER
{
struct itimerval t_r; /* timeout requested */
sigset_t sigset;
- t_r.it_value.tv_sec = seconds;
- t_r.it_value.tv_usec = t_r.it_interval.tv_sec = t_r.it_interval.tv_usec = 0;
+ if(seconds) {
+ t_r.it_value.tv_sec = seconds;
+ t_r.it_value.tv_usec = t_r.it_interval.tv_sec = t_r.it_interval.tv_usec = 0;
# ifdef __CYGWIN__
- setitimer(ITIMER_REAL, &t_r, NULL);
+ setitimer(ITIMER_REAL, &t_r, NULL);
+ }
if(reset_signals) {
signal(SIGALRM, zend_timeout);
sigemptyset(&sigset);
sigaddset(&sigset, SIGALRM);
}
# else
- setitimer(ITIMER_PROF, &t_r, NULL);
+ setitimer(ITIMER_PROF, &t_r, NULL);
+ }
if(reset_signals) {
signal(SIGPROF, zend_timeout);
sigemptyset(&sigset);