[Process] Add more precision to Process::stop timeout
This commit is contained in:
parent
57d4159133
commit
fa769a2c21
@ -631,12 +631,10 @@ class Process
|
|||||||
*/
|
*/
|
||||||
public function stop($timeout = 10)
|
public function stop($timeout = 10)
|
||||||
{
|
{
|
||||||
$timeoutMicro = (int) $timeout*1E6;
|
$timeoutMicro = microtime(true) + $timeout;
|
||||||
if ($this->isRunning()) {
|
if ($this->isRunning()) {
|
||||||
proc_terminate($this->process);
|
proc_terminate($this->process);
|
||||||
$time = 0;
|
while ($this->isRunning() && microtime(true) < $timeoutMicro) {
|
||||||
while (1 == $this->isRunning() && $time < $timeoutMicro) {
|
|
||||||
$time += 1000;
|
|
||||||
usleep(1000);
|
usleep(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user