Make sure async processes fail the promise if they fail to start, fixes #9808
parent
8427b6c8ed
commit
251b852fd2
|
@ -250,16 +250,32 @@ class ProcessExecutor
|
|||
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
|
||||
if (method_exists('Symfony\Component\Process\Process', 'fromShellCommandline')) {
|
||||
$process = Process::fromShellCommandline($command, $cwd, null, null, static::getTimeout());
|
||||
} else {
|
||||
$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;
|
||||
|
||||
try {
|
||||
$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)
|
||||
|
|
Loading…
Reference in New Issue