diff --git a/src/Fork.php b/src/Fork.php index f4136c0..54bab64 100644 --- a/src/Fork.php +++ b/src/Fork.php @@ -29,6 +29,9 @@ class Fork implements DeferredInterface private $status; private $message; + /** @var array $messages */ + private $messages; + public function __construct($pid, SharedMemory $shm, $debug = false) { $this->defer = new Deferred(); @@ -36,6 +39,7 @@ public function __construct($pid, SharedMemory $shm, $debug = false) $this->shm = $shm; $this->debug = $debug; $this->name = ''; + $this->messages = []; } /** @@ -94,19 +98,17 @@ public function processWaitStatus($status) } } - public function receive() + public function receive(): array { - $messages = []; - foreach ($this->shm->receive() as $message) { if ($message instanceof ExitMessage) { $this->message = $message; } else { - $messages[] = $message; + $this->messages[] = $message; } } - return $messages; + return $this->messages; } public function kill($signal = SIGINT) @@ -139,6 +141,11 @@ public function getError() } } + public function getMessages(): array + { + return $this->messages; + } + public function isSuccessful() { return 0 === $this->getExitStatus();