| 1 | <?php |
||
| 9 | class Delayer |
||
| 10 | { |
||
| 11 | /** |
||
| 12 | * Delays to be ended at. |
||
| 13 | * @var array |
||
| 14 | */ |
||
| 15 | private $untils = []; |
||
| 16 | |||
| 17 | /** |
||
| 18 | * React Deferreds. |
||
| 19 | * @var Deferred |
||
| 20 | */ |
||
| 21 | private $deferreds = []; |
||
| 22 | |||
| 23 | /** |
||
| 24 | * Add delay. |
||
| 25 | * @param int $time |
||
| 26 | * @param Deferred $deferred |
||
| 27 | */ |
||
| 28 | 6 | public function add($time, Deferred $deferred) |
|
| 43 | |||
| 44 | /** |
||
| 45 | * Sleep at least required. |
||
| 46 | */ |
||
| 47 | 9 | public function sleep() |
|
| 65 | |||
| 66 | /** |
||
| 67 | * Consume delay queue. |
||
| 68 | */ |
||
| 69 | 18 | public function consumeAndResolve() |
|
| 81 | |||
| 82 | /** |
||
| 83 | * Is $untils empty? |
||
| 84 | * @return bool |
||
| 85 | */ |
||
| 86 | public function empty() |
||
| 90 | } |
||
| 91 |