From: Stanislav Malyshev Date: Mon, 3 Jul 2000 16:53:39 +0000 (+0000) Subject: Unblock SIGPROF signal when starting timer. X-Git-Tag: PRE_METHOD_CALL_SEPERATE_FIX_PATCH~39 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91130b6a005166b1f8c1212121b5f5aa78a5b819;p=php Unblock SIGPROF signal when starting timer. On Linux, this signal is blocked by default after first signal is run --- diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 4fdc86e66e..16853bcadb 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -680,12 +680,16 @@ void zend_set_timeout(long seconds) # 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; setitimer(ITIMER_PROF, &t_r, NULL); signal(SIGPROF, zend_timeout); + sigemptyset(&sigset); + sigaddset(&sigset, SIGPROF); + sigprocmask(SIG_UNBLOCK,&sigset,NULL); } # endif #endif