diff options
author | Tyson Andre <tysonandre775@hotmail.com> | 2019-08-25 10:48:52 -0400 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-08-26 11:13:26 +0200 |
commit | f5bccc0eb5bfe2b1c9ba55cf1df27f2a18a046fa (patch) | |
tree | ef42b21c4b4de8775b3e33cb00bea043ce19af69 | |
parent | 16d35eb643bf974554e5264021ee10fc969e2053 (diff) | |
download | php-git-f5bccc0eb5bfe2b1c9ba55cf1df27f2a18a046fa.tar.gz |
Fix opcache optimizer info for time_nanosleep
This can also return an array. See
https://www.php.net/manual/en/function.time-nanosleep.php#refsect1-function.time-nanosleep-returnvalues
> If the delay was interrupted by a signal, an associative array will be
returned with the components:
>
> - seconds - number of seconds remaining in the delay
> - nanoseconds - number of nanoseconds remaining in the delay
Sending a SIGUSR1 to the below program would trigger this behavior.
```
pcntl_signal(\SIGUSR1, function ($signo, $signinfo) {
echo "Handling a signal $signo\n";
});
echo "Sleeping for 100 seconds\n";
var_export(time_nanosleep(100, 0));
```
The incomplete signature existed since c88ffa9a5.
No phpt tests existed for time_nanosleep returning an array
-rw-r--r-- | ext/opcache/Optimizer/zend_func_info.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/opcache/Optimizer/zend_func_info.c b/ext/opcache/Optimizer/zend_func_info.c index b32a954c1f..7f08104743 100644 --- a/ext/opcache/Optimizer/zend_func_info.c +++ b/ext/opcache/Optimizer/zend_func_info.c @@ -277,7 +277,7 @@ static const func_info_t func_infos[] = { F0("sleep", MAY_BE_FALSE | MAY_BE_LONG), F0("usleep", MAY_BE_NULL | MAY_BE_FALSE), #if HAVE_NANOSLEEP - F0("time_nanosleep", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), + F0("time_nanosleep", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_LONG), F0("time_sleep_until", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), #endif #if HAVE_STRPTIME |