PHP Australia Conference 2015

event_add

(PECL libevent >= 0.0.1)

event_addAjoute un évènement aux évènements monitorés

Description

bool event_add ( resource $event [, int $timeout = -1 ] )

event_add() planifie l'éxecution de event lorsque l'évènement précisé dans event_set() se produit ou au moins dans le temps précisé par timeout. Si timeout n'est pas renseigné, alors aucun timeout ne sera utilisé. Le paramètre event doit représenter un évènement initialisé par event_set() et event_base_set(). Si event possède déja un timeout, il est remplacé par le nouveau.

Liste de paramètres

event

Ressource event valide.

timeout

timeout optionnel (en microsecondes).

Valeurs de retour

event_add() retourne TRUE en cas de succès ou FALSE si une erreur survient.

add a note add a note

User Contributed Notes 1 note

up
0
zhaoyong dot lc at gmail dot com
1 year ago
This is a Timer example use pcntl and libevent

function newChild($func_name) {
    echo "enter newChild\n";
    $args = func_get_args();
    unset($args[0]);
    $pid =  pcntl_fork();
    if ($pid == 0) {
        function_exists($func_name) and exit(call_user_func_array($func_name, $args)) or exit(-1);
    } else if($pid == -1) {
        echo "Couldn't create child process";
    } else {
        return $pid;
    }
}

function on_timer() {
    echo "timer called\n";
}

/**
* @param $func string, function name
* @param $timeouts int, microtimes for time delay
*/
function timer($func, $timeouts){

    echo "enter timer\n";
    $base = event_base_new();
    $event = event_new();

    event_set($event, 0, EV_TIMEOUT, $func);
    event_base_set($event, $base);
    event_add($event, $timeouts);

    event_base_loop($base);
}

$pid = newChild("timer", "on_timer", 5000000);

if ($pid > 0) {
    echo "master process exit\n";
}
To Top