mirror of
https://github.com/danog/amp.git
synced 2024-12-11 17:09:40 +01:00
Fix ref/unref of Delayed after resolving
This commit is contained in:
parent
23ac95fc6d
commit
4faeca163b
@ -12,7 +12,7 @@ final class Delayed implements Promise
|
|||||||
{
|
{
|
||||||
use Internal\Placeholder;
|
use Internal\Placeholder;
|
||||||
|
|
||||||
/** @var string Event loop watcher identifier. */
|
/** @var string|null Event loop watcher identifier. */
|
||||||
private $watcher;
|
private $watcher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -22,6 +22,7 @@ final class Delayed implements Promise
|
|||||||
public function __construct(int $time, $value = null)
|
public function __construct(int $time, $value = null)
|
||||||
{
|
{
|
||||||
$this->watcher = Loop::delay($time, function () use ($value) {
|
$this->watcher = Loop::delay($time, function () use ($value) {
|
||||||
|
$this->watcher = null;
|
||||||
$this->resolve($value);
|
$this->resolve($value);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -33,7 +34,9 @@ final class Delayed implements Promise
|
|||||||
*/
|
*/
|
||||||
public function reference()
|
public function reference()
|
||||||
{
|
{
|
||||||
Loop::reference($this->watcher);
|
if ($this->watcher !== null) {
|
||||||
|
Loop::reference($this->watcher);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -44,6 +47,8 @@ final class Delayed implements Promise
|
|||||||
*/
|
*/
|
||||||
public function unreference()
|
public function unreference()
|
||||||
{
|
{
|
||||||
Loop::unreference($this->watcher);
|
if ($this->watcher !== null) {
|
||||||
|
Loop::unreference($this->watcher);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user