Skip to content

Commit 476bb23

Browse files
committed
Fix loop running flag to support nesting properly
1 parent 5859044 commit 476bb23

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/Loop.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ final class Loop
1717
private static $driver = null;
1818

1919
/**
20-
* @var bool
20+
* @var int
2121
*/
22-
private static $running = false;
22+
private static $level = 0;
2323

2424
/**
2525
* Set the factory to be used to create a driver if none is passed to
@@ -30,7 +30,7 @@ public static function setFactory(LoopDriverFactory $factory = null)
3030
{
3131
self::$factory = $factory;
3232

33-
if (!self::$running) {
33+
if (self::$level === 0) {
3434
self::$driver = self::createDriver();
3535
self::$registry = [];
3636
}
@@ -53,7 +53,7 @@ public static function execute(callable $callback, LoopDriver $driver = null)
5353

5454
self::$driver = $driver;
5555
self::$registry = [];
56-
self::$running = true;
56+
self::$level++;
5757

5858
try {
5959
$callback();
@@ -62,7 +62,7 @@ public static function execute(callable $callback, LoopDriver $driver = null)
6262
} finally {
6363
self::$driver = $previousDriver;
6464
self::$registry = $previousRegistry;
65-
self::$running = false;
65+
self::$level--;
6666
}
6767
}
6868

0 commit comments

Comments
 (0)