$this->
resetProcessData();
$this->starttime =
$this->lastOutputTime =
microtime(true
);
$this->callback =
$this->
buildCallback($callback);
$this->hasCallback = null !==
$callback;
$descriptors =
$this->
getDescriptors();
if ($this->env
) { $env += '\\' === \DIRECTORY_SEPARATOR ?
array_diff_ukey($this->env,
$env, 'strcasecmp'
) :
$this->env;
} $env += '\\' === \DIRECTORY_SEPARATOR ?
array_diff_ukey($this->
getDefaultEnv(),
$env, 'strcasecmp'
) :
$this->
getDefaultEnv();
if (\
is_array($commandline =
$this->commandline
)) { $commandline =
implode(' ',
array_map($this->
escapeArgument(...
),
$commandline));
if ('\\' !== \DIRECTORY_SEPARATOR
) { // exec is mandatory to deal with sending a signal to the process
$commandline = 'exec '.
$commandline;
} } else { $commandline =
$this->
replacePlaceholders($commandline,
$env);
}