|
14 | 14 |
|
15 | 15 | require dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; |
16 | 16 |
|
17 | | -$finite = new Limited(new Infinite(new EventLoopBridge(), 1), 100); |
| 17 | +$limited = new Limited(new Infinite(new EventLoopBridge(), 1), 100); |
18 | 18 |
|
19 | | -$timer = Loop::addPeriodicTimer(1, function () use ($finite) { |
20 | | - var_export(iteratorOrArrayToArray($finite->info())); |
21 | | -}); |
| 19 | +Loop::futureTick(async(static function () use ($limited) { |
| 20 | + $timer = Loop::addPeriodicTimer(1, function () use ($limited) { |
| 21 | + var_export(iteratorOrArrayToArray($limited->info())); |
| 22 | + }); |
22 | 23 |
|
23 | | -$promises = []; |
24 | | -foreach (range(0, 250) as $i) { |
25 | | - $promises[] = async(static function (Limited $finite, int $i): int { |
26 | | - $sleep = $finite->run(static function (int $sleep): int { |
27 | | - sleep($sleep); |
| 24 | + $promises = []; |
| 25 | + foreach (range(0, 250) as $i) { |
| 26 | + $promises[] = async(static function (Limited $limited, int $i): int { |
| 27 | + $sleep = $limited->run(static function (int $sleep): int { |
| 28 | + sleep($sleep); |
28 | 29 |
|
29 | | - return $sleep; |
30 | | - }, [random_int(1, 13)]); |
| 30 | + return $sleep; |
| 31 | + }, [random_int(1, 13)]); |
31 | 32 |
|
32 | | - echo $i, '; ', $sleep, PHP_EOL; |
| 33 | + echo $i, '; ', $sleep, PHP_EOL; |
33 | 34 |
|
34 | | - return $sleep; |
35 | | - })($finite, $i); |
36 | | -} |
| 35 | + return $sleep; |
| 36 | + })($limited, $i); |
| 37 | + } |
37 | 38 |
|
38 | | -$signalHandler = static function () use ($finite): void { |
39 | | - $finite->close(); |
40 | | - Loop::stop(); |
41 | | -}; |
| 39 | + $signalHandler = static function () use ($limited): void { |
| 40 | + $limited->close(); |
| 41 | + Loop::stop(); |
| 42 | + }; |
42 | 43 |
|
43 | | -Loop::addSignal(SIGINT, $signalHandler); |
| 44 | + Loop::addSignal(SIGINT, $signalHandler); |
44 | 45 |
|
45 | | -await(all($promises)); |
| 46 | + await(all($promises)); |
46 | 47 |
|
47 | | -$finite->close(); |
48 | | -Loop::removeSignal(SIGINT, $signalHandler); |
49 | | -Loop::cancelTimer($timer); |
| 48 | + $limited->close(); |
| 49 | + Loop::removeSignal(SIGINT, $signalHandler); |
| 50 | + Loop::cancelTimer($timer); |
| 51 | +})); |
0 commit comments