/** * {@inheritdoc} */ public function signal(Execution $execution, $signal, array $variables = [], array $delegation = []) { foreach ($variables as $k => $v) { $execution->setVariable($k, $v); } if ($signal === NULL) { return $execution->takeAll(NULL, [$execution]); } return $execution->take($signal); }
public function signal(Execution $execution, $signal, array $variables = [], array $delegation = []) { $sub = $execution->getEngine()->findExecution($delegation['executionId']); if (!$sub instanceof Execution) { throw new \RuntimeException('Missing reference to nested execution'); } foreach ($this->outputs as $target => $source) { if ($sub->hasVariable($source)) { $execution->setVariable($target, $sub->getVariable($source)); } } $execution->takeAll(NULL, [$execution]); }