Skip to content

Commit

Permalink
Merge pull request #7 from reactphp-parallel/generics
Browse files Browse the repository at this point in the history
Docblock based generics
  • Loading branch information
WyriHaximus committed Aug 18, 2020
2 parents e87bbbb + 0e74a88 commit 8bc733c
Show file tree
Hide file tree
Showing 29 changed files with 163 additions and 99 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -24,7 +24,7 @@ use Money\Money;
use React\EventLoop\Factory;
use ReactParallel\Factory as ParallelFactory;
use ReactParallel\Pool\Worker\Workers\ReturnWorkerFactory;
use ReactParallel\Pool\Worker\Workers\Work;
use ReactParallel\Pool\Worker\Workers\WorkObject;

require dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor/autoload.php';

Expand All @@ -33,7 +33,7 @@ $parallelFactory = new ParallelFactory($loop);
$workerFactory = new ReturnWorkerFactory();

$pool = new \ReactParallel\Pool\Worker\Worker($parallelFactory, $workerFactory, 133);
$pool->perform(new Work(Money::EUR(512)))->always(function () use ($pool) {
$pool->perform(new WorkObject(Money::EUR(512)))->always(function () use ($pool) {
$pool->close();
})->done(function (Money $money) {
echo $money->getAmount();
Expand Down
82 changes: 41 additions & 41 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions examples/basic-return.php
Expand Up @@ -4,7 +4,7 @@
use React\EventLoop\Factory;
use ReactParallel\Factory as ParallelFactory;
use ReactParallel\Pool\Worker\Workers\ReturnWorkerFactory;
use ReactParallel\Pool\Worker\Workers\Work;
use ReactParallel\Pool\Worker\Workers\WorkObject;

require dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor/autoload.php';

Expand All @@ -13,7 +13,7 @@
$workerFactory = new ReturnWorkerFactory();

$pool = new \ReactParallel\Pool\Worker\Worker($parallelFactory, $workerFactory, 133);
$pool->perform(new Work(Money::EUR(512)))->always(function () use ($pool) {
$pool->perform(new WorkObject(Money::EUR(512)))->always(function () use ($pool) {
$pool->close();
})->done(function (Money $money) {
echo $money->getAmount();
Expand Down
4 changes: 2 additions & 2 deletions examples/return.php
Expand Up @@ -4,7 +4,7 @@
use React\EventLoop\Factory;
use ReactParallel\Factory as ParallelFactory;
use ReactParallel\Pool\Worker\Workers\ReturnWorkerFactory;
use ReactParallel\Pool\Worker\Workers\Work;
use ReactParallel\Pool\Worker\Workers\WorkObject;
use function React\Promise\all;

require dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor/autoload.php';
Expand All @@ -19,7 +19,7 @@
$func = function () use (&$promises, &$i, $pool, &$func, $loop) {
var_export(iterator_to_array($pool->info()));
echo $i, PHP_EOL;
$promises[] = $pool->perform(new Work(Money::EUR($i)));
$promises[] = $pool->perform(new WorkObject(Money::EUR($i)));
echo $i, PHP_EOL;
if ($i === 512) {
all($promises)->then(function (array $monies) use ($pool): void {
Expand Down
34 changes: 23 additions & 11 deletions infection.json.dist
Expand Up @@ -12,7 +12,7 @@
"@default": true,
"FunctionCallRemoval": {
"ignore": [
"ReactParallel\\Pool\\Worker\\Worker::perform::76"
"ReactParallel\\Pool\\Worker\\Worker::perform::88"
]
},
"GreaterThan": {
Expand All @@ -27,25 +27,37 @@
},
"Identical": {
"ignore": [
"ReactParallel\\Pool\\Worker\\Thread::__construct::43",
"ReactParallel\\Pool\\Worker\\Thread::__construct::44",
"ReactParallel\\Pool\\Worker\\Thread::close::85",
"ReactParallel\\Pool\\Worker\\Worker::getIdleThread::137"
"ReactParallel\\Pool\\Worker\\Worker::getIdleThread::149"
]
},
"MethodCallRemoval": {
"ignore": [
"ReactParallel\\Pool\\Worker\\Infinite::startTtlTimer::189",
"ReactParallel\\Pool\\Worker\\Thread::__construct::44",
"ReactParallel\\Pool\\Worker\\Thread::close::89",
"ReactParallel\\Pool\\Worker\\Worker::perform::87",
"ReactParallel\\Pool\\Worker\\Worker::kill::111",
"ReactParallel\\Pool\\Worker\\Worker::getIdleThread::138",
"ReactParallel\\Pool\\Worker\\Worker::startTtlTimer::164"
"ReactParallel\\Pool\\Worker\\Thread::__construct::40",
"ReactParallel\\Pool\\Worker\\Thread::__construct::45",
"ReactParallel\\Pool\\Worker\\Thread::__construct::49",
"ReactParallel\\Pool\\Worker\\Thread::__construct::55",
"ReactParallel\\Pool\\Worker\\Thread::perform::77",
"ReactParallel\\Pool\\Worker\\Thread::close::84",
"ReactParallel\\Pool\\Worker\\Thread::close::90",
"ReactParallel\\Pool\\Worker\\Thread\\Performer::create::30",
"ReactParallel\\Pool\\Worker\\Thread\\Performer::create::32",
"ReactParallel\\Pool\\Worker\\Worker::perform::99",
"ReactParallel\\Pool\\Worker\\Worker::kill::123",
"ReactParallel\\Pool\\Worker\\Worker::getIdleThread::150",
"ReactParallel\\Pool\\Worker\\Worker::startTtlTimer::176"
]
},
"NotIdentical": {
"ignore": [
"ReactParallel\\Pool\\Worker\\Thread::close::85"
"ReactParallel\\Pool\\Worker\\Thread::close::86"
]
},
"PublicVisibility": {
"ignore": [
"ReactParallel\\Pool\\Worker\\Worker::close::82",
"ReactParallel\\Pool\\Worker\\Worker::perform::77"
]
}
}
Expand Down
3 changes: 2 additions & 1 deletion phpstan.neon
@@ -1,4 +1,5 @@
parameters:
checkGenericClassInNonGenericObjectType: false
ignoreErrors:
- '#Call to an undefined method React\\Promise\\PromiseInterface::always\(\).#'
- '#Call to an undefined method React\\Promise\\PromiseInterface::done\(\).#'
Expand All @@ -10,4 +11,4 @@ parameters:
- ReactParallel\Tests\AbstractPoolTest

includes:
- vendor/wyrihaximus/async-test-utilities/rules.neon
- vendor/wyrihaximus/async-test-utilities/rules.neon
2 changes: 1 addition & 1 deletion src/Message/Outcome.php
Expand Up @@ -4,7 +4,7 @@

namespace ReactParallel\Pool\Worker\Message;

use ReactParallel\Pool\Worker\Message;
use ReactParallel\Pool\Worker\Work\Message;

interface Outcome extends Message
{
Expand Down
2 changes: 1 addition & 1 deletion src/Message/PositiveOutcome.php
Expand Up @@ -4,7 +4,7 @@

namespace ReactParallel\Pool\Worker\Message;

use ReactParallel\Pool\Worker\Result as UnitOfResult;
use ReactParallel\Pool\Worker\Work\Result as UnitOfResult;

interface PositiveOutcome extends Outcome
{
Expand Down

0 comments on commit 8bc733c

Please sign in to comment.