summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2000-07-03 16:53:39 +0000
committerStanislav Malyshev <stas@php.net>2000-07-03 16:53:39 +0000
commit91130b6a005166b1f8c1212121b5f5aa78a5b819 (patch)
treeed48adb40e59093b4d890dc0ff5ec7b42b6e6dec /Zend/zend_execute_API.c
parentd58ff645ffe9c008449f76c8c6243ec7a61de3de (diff)
downloadphp-git-91130b6a005166b1f8c1212121b5f5aa78a5b819.tar.gz
Unblock SIGPROF signal when starting timer.
On Linux, this signal is blocked by default after first signal is run
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r--Zend/zend_execute_API.c4
1 files changed, 4 insertions, 0 deletions
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