Ev EvPrepare 클래스

(PECL ev >= 0.2.0)


소개

EvPrepareEvCheck 감시자는 일반적으로 쌍으로 사용됩니다. EvPrepare 감시자는 프로세스가 차단되기 전에 호출되고 EvCheck는 나중에 호출됩니다.

EvLoop::run() 또는 EvPrepare 또는 EvCheck 감시자로부터 현재 이벤트 루프에 들어가는 유사한 메서드 또는 함수를 호출하는 것은 허용되지 않습니다. 그러나 현재 루프 이외의 다른 루프는 괜찮습니다. 이에 대한 근거는 해당 감시자에서 재귀를 확인할 필요가 없다는 것입니다. 즉, 시퀀스는 항상 EvPrepare -> 차단 -> EvCheck 이므로 각 종류의 감시자가 있으면 항상 쌍으로 괄호로 호출됩니다. 호출 차단.

주요 목적은 다른 이벤트 메커니즘을 libev에 통합하는 것이며 그 사용은 다소 고급입니다. 예를 들어, 변수 변경을 추적하고, 맞춤형 감시자를 구현하고, net-snmp 또는 코루틴 라이브러리 등을 통합하는 데 사용할 수 있습니다. 또한 일부 데이터를 캐시하고 차단하기 전에 플러시하려는 경우에도 유용합니다.

EvCheck 감시자에게 가장 높은( Ev::MAXPRI ) 우선 순위를 부여하여 투표 후 다른 감시자보다 먼저 실행되도록 하는 것이 좋습니다(EvPrepare 감시자에게는 중요하지 않음).

또한 EvCheck 감시자는 이벤트를 활성화/피드해서는 안 됩니다. libev는 이를 완벽하게 지원하지만 다른 EvCheck 감시자가 작업을 수행하기 전에 실행될 수 있습니다.


클래스 개요

                  
class EvPrepare extends EvWatcher {

  /* Inherited properties */
  public $is_active;
  public $data;
  public $is_pending;
  public $priority;

  /* Methods */
  public __construct( string $callback , string $data = ?, string $priority = ?)
  final public static createStopped( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare

  /* Inherited methods */
  public EvWatcher::clear(): int
  public EvWatcher::feed( int $revents ): void
  public EvWatcher::getLoop(): EvLoop
  public EvWatcher::invoke( int $revents ): void
  public EvWatcher::keepalive( bool $value = ?): bool
  public EvWatcher::setCallback( callable $callback ): void
  public EvWatcher::start(): void
  public EvWatcher::stop(): void
}
                  
                

목차