com php-src: IBM i PASE doesn't support ITIMER_PROF: Zend /zend_execute_API.c Zend/zend_signal.c

From: Date: Tue, 15 Dec 2020 09:15:28 +0000
Subject: com php-src: IBM i PASE doesn't support ITIMER_PROF: Zend /zend_execute_API.c Zend/zend_signal.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-114447@lists.php.net to get a copy of this message
Commit: 54248b18fea80dcb8b7e62550c8566df10e8e935 Author: Calvin Buckley <calvin@cmpct.info> Thu, 10 Dec 2020 14:25:32 -0400 Committer: Nikita Popov <nikita.ppv@gmail.com> Tue, 15 Dec 2020 10:15:28 +0100 Parents: 10c9d615dea8a21437443d76132f973c7f0c5da4 Branches: PHP-7.4 PHP-8.0 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=54248b18fea80dcb8b7e62550c8566df10e8e935 Log: IBM i PASE doesn't support ITIMER_PROF Like Cygwin, this platform needs to use a real-time timer. This was based on a patch by @kadler, but it didn't handle unsetting the timer, so the timeout would continue to be active, triggering hard_timeout unexpectedly. The patch is fixed to handle unsetting. Closes GH-6503. Changed paths: M Zend/zend_execute_API.c M Zend/zend_signal.c Diff: diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index a62b9292ece..f4f0fa14f1d 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -1294,7 +1294,7 @@ static void zend_set_timeout_ex(zend_long seconds, int reset_signals) /* {{{ */ 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__ +# if defined(__CYGWIN__) || defined(__PASE__) setitimer(ITIMER_REAL, &t_r, NULL); } signo = SIGALRM; @@ -1356,7 +1356,7 @@ void zend_unset_timeout(void) /* {{{ */ no_timeout.it_value.tv_sec = no_timeout.it_value.tv_usec = no_timeout.it_interval.tv_sec = no_timeout.it_interval.tv_usec = 0; -# ifdef __CYGWIN__ +# if defined(__CYGWIN__) || defined(__PASE__) setitimer(ITIMER_REAL, &no_timeout, NULL); # else setitimer(ITIMER_PROF, &no_timeout, NULL); diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c index e69914752ac..7e6eb18068e 100644 --- a/Zend/zend_signal.c +++ b/Zend/zend_signal.c @@ -62,7 +62,8 @@ ZEND_API zend_signal_globals_t zend_signal_globals; static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context); static int zend_signal_register(int signo, void (*handler)(int, siginfo_t*, void*)); -#ifdef __CYGWIN__ +#if defined(__CYGWIN__) || defined(__PASE__) +/* Matches zend_excute_API.c; these platforms don't support ITIMER_PROF. */ #define TIMEOUT_SIG SIGALRM #else #define TIMEOUT_SIG SIGPROF

« previous php.cvs (#114447) next »