PHP 8.6.0 Beta 1 is available for testing

Класс EvLoop

(PECL ev >= 0.2.0)

Введение

Представляет событийный цикл, который всегда отличается от цикла по умолчанию. В отличие от цикла по умолчанию, он не может работать с наблюдателями EvChild .

Если доступна работа с потоками исполнения, то необходимо создать цикл для каждого потока используя в качестве родителя цикл по умолчанию.

Событийный цикл по умолчанию инициализируется автоматически с помощью Ev. Он доступен через методы класса Ev или через метод EvLoop::defaultLoop() .

Обзор класса

final class EvLoop {
/* Свойства */
public $data ;
public $backend ;
public $iteration ;
public $pending ;
public $io_interval ;
public $depth ;
/* Методы */
public function __construct (
int $flags = ?,
mixed $data = NULL ,
float $io_interval = 0.0 ,
float $timeout_interval = 0.0
)
public function backend (): int
final public function check ( string $callback , string $data = ?, string $priority = ?): EvCheck
final public function child (
string $pid ,
string $trace ,
string $callback ,
string $data = ?,
string $priority = ?
): EvChild
public static function defaultLoop (
int $flags = Ev::FLAG_AUTO ,
mixed $data = NULL ,
float $io_interval = 0. ,
float $timeout_interval = 0.
): EvLoop
final public function embed (
string $other ,
string $callback = ?,
string $data = ?,
string $priority = ?
): EvEmbed
final public function fork ( callable $callback , mixed $data = null , int $priority = 0 ): EvFork
final public function idle ( callable $callback , mixed $data = null , int $priority = 0 ): EvIdle
public function invokePending (): void
final public function io (
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo
public function loopFork (): void
public function now (): float
public function nowUpdate (): void
final public function periodic (
float $offset ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic
final public function prepare ( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
public function resume (): void
public function run ( int $flags = 0 ): void
final public function signal (
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal
final public function stat (
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvStat
public function stop ( int $how = ?): void
public function suspend (): void
final public function timer (
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer
public function verify (): void
}

Свойства

data
Произвольные данные, которые добавили циклу
backend
Только чтение. Флаги бэкенда, которые указывают, какой событийный бэкенд используется.
is_default_loop
Только чтение. Если установили значение true , то это цикл по умолчанию.
iteration
Текущий счётчик итераций. Смотри Ev::iteration()
pending
Количество ожидающих наблюдателей. Значение 0 указывает, что ожидающих наблюдателей нет.
io_interval
Более высокие значения io_interval разрешают модулю libev тратить больше времени для сбора событий EvIo , что позволит обработать больше событий за одну итерацию заплатив за это увеличенными задержками. Время ожидания (и EvPeriodic и EvTimer ) не будет затронуто. Установка в ненулевое значение добавить дополнительный вызов sleep() в большинство итераций цикла. Время сна гарантирует, что libev не будет передавать события EvIo чаще, чем один раз за этот период, в среднем. Для большинства программ хорошим значением io_interval будет значение около 0.1, этого достаточно для большинства интерактивных серверов (не для игр). Обычно разница незаметна, если установили значение меньше 0.01, поскольку это значение будет близко к минимальному интервалу вычисляемого времени для большинства систем. Также читайте » ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ.
timeout_interval
Более высокие значения timeout_interval позволят libev тратить больше времени для сбора превышенного времени ожидания за счёт увеличения задержек, джиттеров или неточностей (callback-функция наблюдателя будет вызвана позже). Наблюдатели EvIo не будут затронуты. Увеличение этого значение не вызовет перерасхода ресурсов в libev. Также читайте » ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ.
depth
Глубина рекурсии. Смотрите описание метода Ev::depth() .

Содержание

  • EvLoop::backend — Возвращает целое число, описывающее бэкенд, используемый libev
  • EvLoop::check — Создаёт объект EvCheck, связанный с текущим экземпляром цикла событий
  • EvLoop::child — Создаёт объект EvChild, связанный с текущим циклом событий
  • EvLoop::__construct — Конструктор объекта цикла событий
  • EvLoop::defaultLoop — Возвращает или создаёт цикл событий по умолчанию
  • EvLoop::embed — Создаёт экземпляр наблюдателя EvEmbed, связанный с текущим объектом EvLoop
  • EvLoop::fork — Создаёт объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий
  • EvLoop::idle — Создаёт объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий
  • EvLoop::invokePending — Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния
  • EvLoop::io — Создаёт объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий
  • EvLoop::loopFork — Вызывается после разветления
  • EvLoop::now — Возвращает текущее "event loop time"
  • EvLoop::nowUpdate — Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое EvLoop::now в процессе
  • EvLoop::periodic — Создаёт объект наблюдателя EvPeriodic, связанный с текущим экземпляром цикла событий
  • EvLoop::prepare — Создаёт объект наблюдателя EvPrepare, связанный с текущим экземпляром цикла событий
  • EvLoop::resume — Возобновляет ранее приостановленный цикл событий
  • EvLoop::run — Проверяет события и вызывает callback-функции в цикле
  • EvLoop::signal — Создаёт объект наблюдателя EvSignal, связанный с текущим экземпляром цикла событий
  • EvLoop::stat — Создаёт объект наблюдателя EvStat, связанный с текущим экземпляром цикла событий
  • EvLoop::stop — Останавливает цикл событий
  • EvLoop::suspend — Приостанавливает цикл
  • EvLoop::timer — Создаёт объект наблюдателя EvTimer, связанный с текущим экземпляром цикла событий
  • EvLoop::verify — Выполняет внутренние проверки согласованности (для отладки)

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /