/**
  * {@inheritdoc}
  */
 public function create(int $signo, callable $callback, array $args = []) : SignalInterface
 {
     if (!isset($this->signals[$signo])) {
         throw new InvalidSignalError(sprintf('Invalid signal number: %d.', $signo));
     }
     $signal = $this->factory->signal($this, $signo, $callback);
     $this->signals[$signo]->attach($signal);
     return $signal;
 }