innmind / async-time-warp
Installs: 824
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
pkg:composer/innmind/async-time-warp
Requires
- php: ~8.1
- innmind/mantle: ~1.0
- innmind/time-warp: ^3.0
Requires (Dev)
- innmind/black-box: ~4.10
- innmind/coding-standard: ~2.0
- phpunit/phpunit: ~9.0
- vimeo/psalm: ~4.30
This package is auto-updated.
Last update: 2023-11-06 06:41:05 UTC
README
Async implementation of innmind/time-warp
to allow switching to another task when halting the current process.
Installation
composer require innmind/async-time-warp
Usage
use Innmind\Async\TimeWarp\Halt; use Innmind\TimeContinuum\Earth\{ Clock, Period\Second, }; use Innmind\Mantle\{ Source\Predetermined, Suspend, Forerunner, }; $clock = new Clock; $source = Predetermined::of( static function(Suspend $suspend) use ($clock) { $halt = Halt::of($clock, $suspend); $halt(new Second(2)); echo 'World !'; }, static function(Suspend $suspend) use ($clock) { $halt = Halt::of($clock, $suspend); $halt(new Second(1)); echo 'Hello '; }, ); Forerunner::of($clock)(null, $source); // will print "Hello World !" in 2 seconds