function AbstractDriver::enable
Overrides Driver::enable
1 call to AbstractDriver::enable()
- AbstractDriver::createCallbackFiber in vendor/
revolt/ event-loop/ src/ EventLoop/ Internal/ AbstractDriver.php
File
-
vendor/
revolt/ event-loop/ src/ EventLoop/ Internal/ AbstractDriver.php, line 205
Class
- AbstractDriver
- Event loop driver which implements all basic operations to allow interoperability.
Namespace
Revolt\EventLoop\InternalCode
public function enable(string $callbackId) : string {
if (!isset($this->callbacks[$callbackId])) {
throw InvalidCallbackError::invalidIdentifier($callbackId);
}
$callback = $this->callbacks[$callbackId];
if ($callback->enabled) {
return $callbackId;
// Callback already enabled.
}
$callback->enabled = true;
if ($callback instanceof DeferCallback) {
$this->enableDeferQueue[$callback->id] = $callback;
}
elseif ($callback instanceof TimerCallback) {
$callback->expiration = $this->now() + $callback->interval;
$this->enableQueue[$callback->id] = $callback;
}
else {
$this->enableQueue[$callback->id] = $callback;
}
return $callbackId;
}