Skip to content

Commit 795a061

Browse files
author
Greg Bowler
committed
Halt loop as soon as deferred completes
1 parent b70c282 commit 795a061

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

src/Loop.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ public function removeDeferredFromTimer(
8484
if($activeDeferredIndex !== false) {
8585
unset($this->activeDeferred[$activeDeferredIndex]);
8686
}
87+
if($this->haltWhenAllDeferredComplete
88+
&& empty($this->activeDeferred)) {
89+
$this->halt();
90+
}
8791
}
8892

8993
public function setSleepFunction(callable $sleepFunction):void {
@@ -100,11 +104,6 @@ public function run(bool $forever = true):void {
100104
do {
101105
$numTriggered = $this->triggerNextTimers();
102106
$this->triggerCount += $numTriggered;
103-
104-
if($this->haltWhenAllDeferredComplete
105-
&& empty($this->activeDeferred)) {
106-
$this->halt();
107-
}
108107
}
109108
while($numTriggered > 0 && $this->forever);
110109
}

0 commit comments

Comments
 (0)