PHP 8.3.21 Released!

La clase EvPrepare

(PECL ev >= 0.2.0)

Introducción

Los observadores EvPrepare y EvCheck se utilizan habitualmente juntos. El observador EvPrepare será llamado antes de los bloques del proceso, mientras que el observador EvCheck será llamado después.

No está permitido llamar al método EvLoop::run() o a un método/función similar que entre en el bucle del evento actual desde el observador EvPrepare, o desde el observador EvCheck. Sin embargo, esto es posible para todos los demás bucles que no sean el actual. La razón es que no es necesario verificar la recursión en estos observadores, es decir, la secuencia siguiente será siempre: EvPrepare -> bloqueo -> EvCheck, por lo tanto, tener un observador para cada uno no es útil, sabiendo que siempre serán llamados juntos al llamar al bloqueo.

El propósito principal es integrar otros mecanismos de eventos en la biblioteca libev, con un uso avanzado. Pueden ser utilizados, por ejemplo, para monitorear los cambios de variables, implementar observadores personalizados, integrar net-snmp o una biblioteca adicional, y mucho más. También pueden ser útiles para almacenar en caché datos, y querer mostrarlos después del bloqueo.

Se recomienda proporcionar una prioridad alta a EvCheck (Ev::MAXPRI) para asegurarse de que se ejecutará antes que cualquier otro observador en la cola (a diferencia de lo que ocurre con el observador EvPrepare).

Además, los observadores EvCheck no deben activar/alimentar eventos. Aunque libev admite esto, pueden ser ejecutados antes de que los otros observadores EvCheck terminen sus trabajos.

Sinopsis de la Clase

class EvPrepare extends EvWatcher {
/* Propiedades heredadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct( string $callback , string $data = ?, string $priority = ?)
final public static createStopped( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
/* Métodos heredados */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

Tabla de contenidos

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top