]> granicus.if.org Git - php/commitdiff
Unblock SIGPROF signal when starting timer.
authorStanislav Malyshev <stas@php.net>
Mon, 3 Jul 2000 16:53:39 +0000 (16:53 +0000)
committerStanislav Malyshev <stas@php.net>
Mon, 3 Jul 2000 16:53:39 +0000 (16:53 +0000)
On Linux, this signal is blocked by default after first signal is run

Zend/zend_execute_API.c

index 4fdc86e66e9dcd1597eafa687af60bf2eee7ee4a..16853bcadbf5b20cb1fe401f5c750d39fe9addfb 100644 (file)
@@ -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