EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__constructКонструктор объекта EvEmbed

Описание

publicEvEmbed::__construct(
    object$other,
    callable$callback = ?,
    mixed$data = ?,
    int$priority = ?
)

Это довольно продвинутый тип наблюдателя, который позволяет встроить один цикл событий в другой (в настоящее время поддерживаются только события ввода-вывода во встроенном цикле, другие типы наблюдателей могут обрабатываться с задержкой или неверно и не должны использоваться).

Более подробно читайте в » документации libev.

Этот наблюдатель наиболее полезен в BSD системах без работающего kqueue для поддержки обработки большого количества сокетов. Смотрите пример ниже.

Список параметров

other

Экземпляр класса EvLoop. Событийный цикл для встраивания. Этот цикл должен быть встраиваемым (смотрите Ev::embeddableBackends() ).

callback

Смотрите callback-функции наблюдателей .

data

Пользовательские данные, ассоциированные с наблюдателем.

priority

Приоритет наблюдателя

Примеры

Пример #1 Встраивание цикла, созданного с помощью kqueue в событийный цикл по умолчанию

<?php

$loop = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed = NULL;

if (
Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
if ((
$socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
$embed = new EvEmbed($loop);
}
}

if (!
$socket_loop) {
$socket_loop = $loop;
}

// теперь используйте $socket_loop для всех сокетов, а $loop для всего остального
?>

Смотрите также

  • Ev::embeddableBackends() - Возвращает набор бэкендов, которые можно встроить в прочие событийные циклы
To Top