mirror of
https://github.com/amphp/parallel.git
synced 2025-02-22 13:52:23 +01:00
ExitStatus → ExitResult
This commit is contained in:
parent
03cd67c30f
commit
b51e4f7ba6
@ -13,7 +13,7 @@ use Amp\Parallel\{
|
||||
SynchronizationError
|
||||
};
|
||||
use Amp\Parallel\Sync\{ Channel, ChannelledSocket };
|
||||
use Amp\Parallel\Sync\Internal\{ ExitFailure, ExitStatus, ExitSuccess };
|
||||
use Amp\Parallel\Sync\Internal\{ ExitFailure, ExitResult, ExitSuccess };
|
||||
use AsyncInterop\{ Loop, Promise };
|
||||
|
||||
/**
|
||||
@ -302,9 +302,9 @@ class Fork implements Process, Strand {
|
||||
try {
|
||||
$response = yield $this->channel->receive();
|
||||
|
||||
if (!$response instanceof ExitStatus) {
|
||||
if (!$response instanceof ExitResult) {
|
||||
throw new SynchronizationError(\sprintf(
|
||||
'Did not receive an exit status from fork. Instead received data of type %s',
|
||||
'Did not receive an exit result from fork. Instead received data of type %s',
|
||||
\is_object($response) ? \get_class($response) : \gettype($response)
|
||||
));
|
||||
}
|
||||
@ -324,7 +324,7 @@ class Fork implements Process, Strand {
|
||||
}
|
||||
|
||||
return \Amp\pipe($this->channel->receive(), static function ($data) {
|
||||
if ($data instanceof ExitStatus) {
|
||||
if ($data instanceof ExitResult) {
|
||||
$data = $data->getResult();
|
||||
throw new SynchronizationError(\sprintf(
|
||||
'Forked process unexpectedly exited with result of type: %s',
|
||||
@ -345,8 +345,8 @@ class Fork implements Process, Strand {
|
||||
throw new StatusError('The fork has not been started or has already finished.');
|
||||
}
|
||||
|
||||
if ($data instanceof ExitStatus) {
|
||||
throw new \Error('Cannot send exit status objects.');
|
||||
if ($data instanceof ExitResult) {
|
||||
throw new \Error('Cannot send exit result objects.');
|
||||
}
|
||||
|
||||
return $this->channel->send($data);
|
||||
|
@ -4,7 +4,7 @@ namespace Amp\Parallel\Process;
|
||||
|
||||
use Amp\Coroutine;
|
||||
use Amp\Parallel\{ ContextException, Process as ProcessContext, StatusError, Strand, SynchronizationError };
|
||||
use Amp\Parallel\Sync\{ ChannelledSocket, Internal\ExitStatus };
|
||||
use Amp\Parallel\Sync\{ ChannelledSocket, Internal\ExitResult };
|
||||
use Amp\Process\Process;
|
||||
use AsyncInterop\Promise;
|
||||
|
||||
@ -60,7 +60,7 @@ class ChannelledProcess implements ProcessContext, Strand {
|
||||
}
|
||||
|
||||
return \Amp\pipe($this->channel->receive(), static function ($data) {
|
||||
if ($data instanceof ExitStatus) {
|
||||
if ($data instanceof ExitResult) {
|
||||
$data = $data->getResult();
|
||||
throw new SynchronizationError(\sprintf(
|
||||
"Process unexpectedly exited with result of type: %s",
|
||||
@ -80,8 +80,8 @@ class ChannelledProcess implements ProcessContext, Strand {
|
||||
throw new StatusError("The process has not been started");
|
||||
}
|
||||
|
||||
if ($data instanceof ExitStatus) {
|
||||
throw new \Error("Cannot send exit status objects");
|
||||
if ($data instanceof ExitResult) {
|
||||
throw new \Error("Cannot send exit result objects");
|
||||
}
|
||||
|
||||
return $this->channel->send($data);
|
||||
@ -101,8 +101,8 @@ class ChannelledProcess implements ProcessContext, Strand {
|
||||
private function doJoin(): \Generator {
|
||||
try {
|
||||
$data = yield $this->channel->receive();
|
||||
if (!$data instanceof ExitStatus) {
|
||||
throw new SynchronizationError("Did not receive an exit status from process");
|
||||
if (!$data instanceof ExitResult) {
|
||||
throw new SynchronizationError("Did not receive an exit result from process");
|
||||
}
|
||||
} catch (\Throwable $exception) {
|
||||
$this->kill();
|
||||
|
@ -28,7 +28,7 @@ interface Channel {
|
||||
* @throws \Amp\Parallel\SynchronizationError If the context has not been started or the context
|
||||
* unexpectedly ends.
|
||||
* @throws \Amp\Parallel\ChannelException If sending on the channel fails.
|
||||
* @throws \Error If an ExitStatus object is given.
|
||||
* @throws \Error If an ExitResult object is given.
|
||||
* @throws \Amp\Parallel\SerializationException If serializing the data fails.
|
||||
*/
|
||||
public function send($data): Promise;
|
||||
|
@ -4,7 +4,7 @@ namespace Amp\Parallel\Sync\Internal;
|
||||
|
||||
use Amp\Parallel\PanicError;
|
||||
|
||||
class ExitFailure implements ExitStatus {
|
||||
class ExitFailure implements ExitResult {
|
||||
/** @var string */
|
||||
private $type;
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace Amp\Parallel\Sync\Internal;
|
||||
|
||||
interface ExitStatus {
|
||||
interface ExitResult {
|
||||
/**
|
||||
* @return mixed Return value of the callable given to the execution context.
|
||||
*
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace Amp\Parallel\Sync\Internal;
|
||||
|
||||
class ExitSuccess implements ExitStatus {
|
||||
class ExitSuccess implements ExitResult {
|
||||
/** @var mixed */
|
||||
private $result;
|
||||
|
||||
|
@ -4,7 +4,7 @@ namespace Amp\Parallel\Threading;
|
||||
|
||||
use Amp\Coroutine;
|
||||
use Amp\Parallel\{ ContextException, StatusError, SynchronizationError, Strand };
|
||||
use Amp\Parallel\Sync\{ ChannelledSocket, Internal\ExitStatus };
|
||||
use Amp\Parallel\Sync\{ ChannelledSocket, Internal\ExitResult };
|
||||
use AsyncInterop\Promise;
|
||||
|
||||
/**
|
||||
@ -201,8 +201,8 @@ class Thread implements Strand {
|
||||
try {
|
||||
$response = yield $this->channel->receive();
|
||||
|
||||
if (!$response instanceof ExitStatus) {
|
||||
throw new SynchronizationError('Did not receive an exit status from thread.');
|
||||
if (!$response instanceof ExitResult) {
|
||||
throw new SynchronizationError('Did not receive an exit result from thread.');
|
||||
}
|
||||
} catch (\Throwable $exception) {
|
||||
$this->kill();
|
||||
@ -223,7 +223,7 @@ class Thread implements Strand {
|
||||
}
|
||||
|
||||
return \Amp\pipe($this->channel->receive(), static function ($data) {
|
||||
if ($data instanceof ExitStatus) {
|
||||
if ($data instanceof ExitResult) {
|
||||
$data = $data->getResult();
|
||||
throw new SynchronizationError(\sprintf(
|
||||
'Thread unexpectedly exited with result of type: %s',
|
||||
@ -243,8 +243,8 @@ class Thread implements Strand {
|
||||
throw new StatusError('The thread has not been started or has already finished.');
|
||||
}
|
||||
|
||||
if ($data instanceof ExitStatus) {
|
||||
throw new \Error('Cannot send exit status objects.');
|
||||
if ($data instanceof ExitResult) {
|
||||
throw new \Error('Cannot send exit result objects.');
|
||||
}
|
||||
|
||||
return $this->channel->send($data);
|
||||
|
@ -225,7 +225,7 @@ abstract class AbstractContextTest extends TestCase {
|
||||
* @depends testSendAndReceive
|
||||
* @expectedException \Error
|
||||
*/
|
||||
public function testSendExitStatus() {
|
||||
public function testSendExitResult() {
|
||||
Loop::execute(\Amp\wrap(function () {
|
||||
$context = $this->createContext(function () {
|
||||
$value = yield $this->receive();
|
||||
|
Loading…
x
Reference in New Issue
Block a user