я здесь цикл reactPHP с двумя событиями таймера:reactPHP процесс блокировки пуска таймера
$loop = \React\EventLoop\Factory::create();
$process = new \React\ChildProcess\Process("php wait5seconds.php");
$process->on('exit', function($exitCode, $termSignal) {
echo "Process Finished".PHP_EOL;
});
$loop->addTimer(2, function($timer) {
echo "TWO".PHP_EOL;
});
$loop->addTimer(1, function($timer) use ($process) {
echo "ONE".PHP_EOL;
$process->start($timer->getLoop());
});
$loop->run();
Без ребенка-процесса таймеры работают нормально, и я получаю из положить:
ONE
TWO
Но когда я запускаю процесс в первом таймере, второй таймер блокируется до завершения процесса. Я получаю выход:
ONE
Process Finished
TWO
Не предполагается асинхронный? (5), поэтому я ожидаю:
ONE
TWO
Process Finished
Что мне не хватает?
Вы на Linux? Я на окнах –
Да, вы можете попробовать 'timeout 5' вместо этого в Windows. – kelunik