Skip to content

Commit 16a3087

Browse files
authored
Merge pull request #10 from reactphp-parallel/fix-examples
Fix examples
2 parents a1e421f + 1b83894 commit 16a3087

File tree

9 files changed

+51
-34
lines changed

9 files changed

+51
-34
lines changed

.github/workflows/ci.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@ jobs:
4848
if: matrix.composer == 'highest'
4949
examples:
5050
strategy:
51+
fail-fast: false
5152
matrix:
5253
php: [7.4]
5354
composer: [lowest, current, highest]
54-
example: [sleep, versions]
55+
example: [echo, exception, json, sleep, versions]
5556
needs: composer-install
5657
runs-on: ubuntu-latest
5758
container:
@@ -63,6 +64,15 @@ jobs:
6364
with:
6465
path: ./vendor/
6566
key: ${{ matrix.composer }}-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
67+
- name: Install Dependencies
68+
run: (test -f vendor && true ) || composer update --prefer-lowest --no-progress --ansi --no-interaction --prefer-dist -o
69+
if: matrix.composer == 'lowest'
70+
- name: Install Dependencies
71+
run: (test -f vendor && true ) || composer install --ansi --no-progress --no-interaction --prefer-dist -o
72+
if: matrix.composer == 'current'
73+
- name: Install Dependencies
74+
run: (test -f vendor && true ) || composer update --ansi --no-progress --no-interaction --prefer-dist -o
75+
if: matrix.composer == 'highest'
6676
- name: 'Run Example: ${{ matrix.example }}'
6777
run: php ./examples/${{ matrix.example }}.php
6878
qa:

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,13 @@ second before returning an message. Upon receiving that message the mean thread
2525
closing the pool;
2626

2727
```php
28+
use React\EventLoop\Factory;
29+
use ReactParallel\EventLoop\EventLoopBridge;
30+
use ReactParallel\Pool\Infinite\Infinite;
31+
2832
$loop = Factory::create();
29-
$finite = new Infinite($loop, 1);
30-
$finite->run(function () {
33+
$infinite = new Infinite($loop, new EventLoopBridge($loop), 1);
34+
$infinite->run(function () {
3135
sleep(1);
3236

3337
return 'Hoi!';
@@ -40,7 +44,7 @@ $loop->run();
4044

4145
## License ##
4246

43-
Copyright 2019 [Cees-Jan Kiewiet](http://wyrihaximus.net/)
47+
Copyright 2020 [Cees-Jan Kiewiet](http://wyrihaximus.net/)
4448

4549
Permission is hereby granted, free of charge, to any person
4650
obtaining a copy of this software and associated documentation

composer.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
"require-dev": {
2727
"bruli/php-value-objects": "^2.0",
2828
"moneyphp/money": "^3.2 || ^3.2.1",
29-
"ocramius/package-versions": "^1.4",
3029
"wyrihaximus/iterator-or-array-to-array": "^1.1"
3130
},
3231
"config": {

composer.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/echo.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212
sleep(1);
1313

1414
return 'Hoi!';
15-
})->then(function (string $message) use ($infinite) {
15+
})->then(function (string $message) use ($infinite, $loop) {
1616
echo $message, PHP_EOL;
1717
$infinite->close();
18+
$loop->stop();
1819
});
1920

2021
echo 'Loop::run()', PHP_EOL;
2122
$loop->run();
22-
echo 'Loop::done()', PHP_EOL;
23+
echo 'Loop::done()', PHP_EOL;

examples/exception.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@
1010

1111
$infinite = new Infinite($loop, new EventLoopBridge($loop), 1);
1212

13-
$finite->run(function () {
13+
$infinite->run(function () {
1414
throw new RuntimeException('Whoops I did it again!');
1515

1616
return 'We shouldn\'t reach this!';
17-
})->always(function () use ($finite) {
18-
$finite->close();
17+
})->always(function () use ($infinite, $loop) {
18+
$infinite->close();
19+
$loop->stop();
1920
})->then(function (string $oops) {
2021
echo $oops, PHP_EOL;
2122
}, function (Throwable $error) {
@@ -24,4 +25,4 @@
2425

2526
echo 'Loop::run()', PHP_EOL;
2627
$loop->run();
27-
echo 'Loop::done()', PHP_EOL;
28+
echo 'Loop::done()', PHP_EOL;

examples/json.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
$infinite = new Infinite($loop, new EventLoopBridge($loop), 1);
1616

1717
$promises = [];
18-
$signalHandler = function () use ($finite, $loop) {
18+
$signalHandler = function () use ($infinite, $loop) {
1919
$loop->stop();
20-
$finite->close();
20+
$infinite->close();
2121
};
2222

23-
$tick = function () use (&$promises, $finite, $loop, $signalHandler, $json, &$tick) {
23+
$tick = function () use (&$promises, $infinite, $loop, $signalHandler, $json, &$tick) {
2424
if (count($promises) < 1000) {
25-
$promises[] = $finite->run(function($json) {
25+
$promises[] = $infinite->run(function($json) {
2626
$json = json_decode($json, true);
2727
return md5(json_encode($json));
2828
}, [$json]);
@@ -32,9 +32,10 @@
3232

3333
all($promises)->then(function ($v) {
3434
var_export($v);
35-
})->always(function () use ($finite, $loop, $signalHandler) {
36-
$finite->close();
35+
})->always(function () use ($infinite, $loop, $signalHandler) {
36+
$infinite->close();
3737
$loop->removeSignal(SIGINT, $signalHandler);
38+
$loop->stop();
3839
})->done();
3940

4041
};

examples/sleep.php

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
<?php
22

3-
43
use React\EventLoop\Factory;
5-
use WyriHaximus\React\Parallel\Infinite;
4+
use ReactParallel\EventLoop\EventLoopBridge;
5+
use ReactParallel\Pool\Infinite\Infinite;
6+
67
use function React\Promise\all;
78
use function WyriHaximus\iteratorOrArrayToArray;
89

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

1112
$loop = Factory::create();
1213

13-
$finite = new Infinite($loop, 0.1);
14+
$infinite = new Infinite($loop, new EventLoopBridge($loop), 0.1);
1415

15-
$timer = $loop->addPeriodicTimer(1, function () use ($finite) {
16-
var_export(iteratorOrArrayToArray($finite->info()));
16+
$timer = $loop->addPeriodicTimer(1, function () use ($infinite) {
17+
var_export(iteratorOrArrayToArray($infinite->info()));
1718
});
1819

1920
$promises = [];
2021
foreach (range(0, 250) as $i) {
21-
$promises[] = $finite->run(function($sleep) {
22+
$promises[] = $infinite->run(function($sleep) {
2223
sleep($sleep);
2324
return $sleep;
2425
}, [random_int(1, 13)])->then(function (int $sleep) use ($i) {
@@ -28,14 +29,15 @@
2829
});
2930
}
3031

31-
$signalHandler = function () use ($finite, $loop) {
32+
$signalHandler = function () use ($infinite, $loop) {
3233
$loop->stop();
33-
$finite->close();
34+
$infinite->close();
3435
};
35-
all($promises)->then(function ($v) use ($finite, $loop, $signalHandler, $timer) {
36-
$finite->close();
36+
all($promises)->then(function ($v) use ($infinite, $loop, $signalHandler, $timer) {
37+
$infinite->close();
3738
$loop->removeSignal(SIGINT, $signalHandler);
3839
$loop->cancelTimer($timer);
40+
$loop->stop();
3941
})->done();
4042

4143
$loop->addSignal(SIGINT, $signalHandler);

examples/versions.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,26 @@
11
<?php
22

3-
4-
use PackageVersions\Versions;
3+
use Composer\InstalledVersions;
54
use React\EventLoop\Factory;
65
use ReactParallel\EventLoop\EventLoopBridge;
76
use ReactParallel\Pool\Infinite\Infinite;
8-
use function WyriHaximus\iteratorOrArrayToArray;
97

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

1210
$loop = Factory::create();
1311

1412
$finite = new Infinite($loop, new EventLoopBridge($loop), 0.1);
1513

16-
$loop->addTimer(1, function () use ($finite) {
14+
$loop->addTimer(1, function () use ($finite, $loop) {
1715
$finite->kill();
16+
$loop->stop();
1817
});
1918
$finite->run(function (): array {
20-
return Versions::VERSIONS;
19+
return array_merge(...array_map(static fn (string $package): array => [$package => InstalledVersions::getPrettyVersion($package)], InstalledVersions::getInstalledPackages()));
2120
})->then(function (array $versions): void {
2221
var_export($versions);
2322
});
2423

2524
echo 'Loop::run()', PHP_EOL;
2625
$loop->run();
27-
echo 'Loop::done()', PHP_EOL;
26+
echo 'Loop::done()', PHP_EOL;

0 commit comments

Comments
 (0)