Make sure async processes fail the promise if they fail to start, fixes #9808

main
Jordi Boggiano 3 years ago
parent 8427b6c8ed
commit 251b852fd2
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC

@ -250,16 +250,32 @@ class ProcessExecutor
throw new \RuntimeException('The given CWD for the process does not exist: '.$cwd); throw new \RuntimeException('The given CWD for the process does not exist: '.$cwd);
} }
try {
// TODO in v3, commands should be passed in as arrays of cmd + args // TODO in v3, commands should be passed in as arrays of cmd + args
if (method_exists('Symfony\Component\Process\Process', 'fromShellCommandline')) { if (method_exists('Symfony\Component\Process\Process', 'fromShellCommandline')) {
$process = Process::fromShellCommandline($command, $cwd, null, null, static::getTimeout()); $process = Process::fromShellCommandline($command, $cwd, null, null, static::getTimeout());
} else { } else {
$process = new Process($command, $cwd, null, null, static::getTimeout()); $process = new Process($command, $cwd, null, null, static::getTimeout());
} }
} catch (\Exception $e) {
call_user_func($job['reject'], $e);
return;
} catch (\Throwable $e) {
call_user_func($job['reject'], $e);
return;
}
$job['process'] = $process; $job['process'] = $process;
try {
$process->start(); $process->start();
} catch (\Exception $e) {
call_user_func($job['reject'], $e);
return;
} catch (\Throwable $e) {
call_user_func($job['reject'], $e);
return;
}
} }
public function wait($index = null) public function wait($index = null)

Loading…
Cancel
Save