PHP 8.6.0 Beta 1 is available for testing

Класс EvPrepare

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvPrepare и EvCheck обычно используются в паре. Наблюдатель EvPrepare вызывается до блокировки процесса, затем вызывается EvCheck

Не разрешается вызывать EvLoop::run() или аналогичные методы или функции, введённые в текущий цикл событий другими наблюдателями EvPrepare или EvCheck . Однако другие циклы событий, не текущий, могут. Смысл в том, что текущему не нужно проверять рекурсию в таких наблюдателях, т.е. всегда будет последовательность: EvPrepare -> блокировка -> EvCheck , так что наблюдателя каждого вида всегда будут вызывать в парах, захватывая блокирующий вызов.

Основная цель заключается в интеграции других событийных механизмов в libev и улучшенное их использование. Они могут быть использованы, например, при отслеживании изменении переменных, при реализации пользовательских наблюдателей, при интегрировании NET-SNMP или сопрограмм библиотеки и многое другое. Они также иногда полезны при кешировании данных и при очистке данных до блокировки.

Рекомендуется устанавливать наблюдателям EvCheck наивысший приоритет (Ev::MAXPRI ), чтобы обеспечить возможность их запуска раньше любых других наблюдателей после опроса (это не имеет значения для наблюдателей EvPrepare).

Кроме того, наблюдатели EvCheck не смогут активировать/подавать события. Пока libev полностью поддерживает все это, они могут выполняться раньше, чем другие наблюдатели EvCheck выполнят свою работу.

Обзор класса

class EvPrepare extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public function __construct ( string $callback , string $data = ?, string $priority = ?)
final public static function createStopped ( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
/* Наследуемые методы */
public function EvWatcher::clear (): int
public function EvWatcher::feed ( int $revents ): void
public function EvWatcher::getLoop (): EvLoop
public function EvWatcher::invoke ( int $revents ): void
public function EvWatcher::keepalive ( bool $value = ?): bool
public function EvWatcher::setCallback ( callable $callback ): void
public function EvWatcher::start (): void
public function EvWatcher::stop (): void
}

Содержание

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

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

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

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

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