mirror of
https://github.com/php/doc-pt_br.git
synced 2026-03-23 22:52:12 +01:00
828 lines
26 KiB
XML
828 lines
26 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: b4fbf4434abeca44c58575ff3967e5640f7877d5 Maintainer: leonardolara Status: ready --><!-- CREDITS: fernandowobeto,leonardolara -->
|
|
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.ev" role="class">
|
|
<title>A classe Ev</title>
|
|
<titleabbrev>Ev</titleabbrev>
|
|
<partintro>
|
|
<!-- {{{ Ev intro -->
|
|
<section xml:id="ev.intro">
|
|
&reftitle.intro;
|
|
<simpara>
|
|
Ev é uma classe estática que fornece acesso ao laço padrão e a algumas
|
|
operações comuns.
|
|
</simpara>
|
|
</section>
|
|
<!-- }}} -->
|
|
<section xml:id="ev.synopsis">
|
|
&reftitle.classsynopsis;
|
|
|
|
<!-- {{{ Synopsis -->
|
|
<classsynopsis>
|
|
<ooclass>
|
|
<classname>Ev</classname>
|
|
</ooclass>
|
|
<!-- {{{ Class synopsis -->
|
|
<classsynopsisinfo>
|
|
<ooclass>
|
|
<modifier>final</modifier>
|
|
<classname>Ev</classname>
|
|
</ooclass>
|
|
</classsynopsisinfo>
|
|
<!-- }}} -->
|
|
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
|
|
<!--{{{-->
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-auto">Ev::FLAG_AUTO</varname>
|
|
<initializer>0</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-noenv">Ev::FLAG_NOENV</varname>
|
|
<initializer>16777216</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-forkcheck">Ev::FLAG_FORKCHECK</varname>
|
|
<initializer>33554432</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-noinotify">Ev::FLAG_NOINOTIFY</varname>
|
|
<initializer>1048576</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-signalfd">Ev::FLAG_SIGNALFD</varname>
|
|
<initializer>2097152</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-nosigmask">Ev::FLAG_NOSIGMASK</varname>
|
|
<initializer>4194304</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.run-nowait">Ev::RUN_NOWAIT</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.run-once">Ev::RUN_ONCE</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.break-cancel">Ev::BREAK_CANCEL</varname>
|
|
<initializer>0</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.break-one">Ev::BREAK_ONE</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.break-all">Ev::BREAK_ALL</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.minpri">Ev::MINPRI</varname>
|
|
<initializer>-2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.maxpri">Ev::MAXPRI</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.read">Ev::READ</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.write">Ev::WRITE</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.timer">Ev::TIMER</varname>
|
|
<initializer>256</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.periodic">Ev::PERIODIC</varname>
|
|
<initializer>512</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.signal">Ev::SIGNAL</varname>
|
|
<initializer>1024</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.child">Ev::CHILD</varname>
|
|
<initializer>2048</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.stat">Ev::STAT</varname>
|
|
<initializer>4096</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.idle">Ev::IDLE</varname>
|
|
<initializer>8192</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.prepare">Ev::PREPARE</varname>
|
|
<initializer>16384</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.check">Ev::CHECK</varname>
|
|
<initializer>32768</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.embed">Ev::EMBED</varname>
|
|
<initializer>65536</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.custom">Ev::CUSTOM</varname>
|
|
<initializer>16777216</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.error">Ev::ERROR</varname>
|
|
<initializer>2147483648</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-select">Ev::BACKEND_SELECT</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-poll">Ev::BACKEND_POLL</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-epoll">Ev::BACKEND_EPOLL</varname>
|
|
<initializer>4</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-kqueue">Ev::BACKEND_KQUEUE</varname>
|
|
<initializer>8</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-devpoll">Ev::BACKEND_DEVPOLL</varname>
|
|
<initializer>16</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-port">Ev::BACKEND_PORT</varname>
|
|
<initializer>32</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-all">Ev::BACKEND_ALL</varname>
|
|
<initializer>63</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-mask">Ev::BACKEND_MASK</varname>
|
|
<initializer>65535</initializer>
|
|
</fieldsynopsis>
|
|
<!--}}}-->
|
|
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
|
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ev')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])"/>
|
|
</classsynopsis>
|
|
<!-- }}} -->
|
|
</section>
|
|
<!-- {{{ Ev constants -->
|
|
<section xml:id="ev.constants">
|
|
&reftitle.constants;
|
|
|
|
<para xml:id="ev.constants.loop-flags">
|
|
Opções passadas para criar um laço:
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.flag-auto">
|
|
<term>
|
|
<constant>Ev::FLAG_AUTO</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
O valor das opções padrão
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-noenv">
|
|
<term>
|
|
<constant>Ev::FLAG_NOENV</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Se esta opção for usada (ou o programa executar setuid ou setgid),
|
|
<literal>libev</literal>
|
|
não irá olhar para a variável de ambiente
|
|
<varname>LIBEV_FLAGS</varname>.
|
|
Caso contrário (por padrão),
|
|
<varname>LIBEV_FLAGS</varname>
|
|
substituirá as opções completamente se for encontrado. Útil para
|
|
testes de desempenho e busca de bugs.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-forkcheck">
|
|
<term>
|
|
<constant>Ev::FLAG_FORKCHECK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Faz com que a libev verifique se há uma bifurcação em cada iteração, em vez de chamar
|
|
<methodname>EvLoop::fork</methodname>
|
|
manualmente. Isso funciona chamando
|
|
<literal>getpid()</literal>
|
|
em cada iteração do laço e, portanto, isso pode desacelerar o
|
|
laço de eventos com muitas iterações de laço, mas geralmente não é
|
|
perceptível. Esta configuração de opção não pode ser substituída ou especificada na
|
|
variável de ambiente
|
|
<varname>LIBEV_FLAGS</varname>.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-noinotify">
|
|
<term>
|
|
<constant>Ev::FLAG_NOINOTIFY</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Quando esta opção é especificada,
|
|
<literal>libev</literal>
|
|
não tentará usar a API
|
|
<literal>inotify</literal>
|
|
para seus observadores
|
|
<link xlink:href="&url.ev.stat;">ev_stat</link>.
|
|
A opção pode ser útil para conservar descritores de arquivo inotify,
|
|
caso contrário, cada laço usando observadores
|
|
<literal>ev_stat</literal>
|
|
consome um
|
|
identificador
|
|
<literal>inotify</literal>.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-signalfd">
|
|
<term>
|
|
<constant>Ev::FLAG_SIGNALFD</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Quando esta opção for especificada,
|
|
<literal>libev</literal>
|
|
tentará usar a API
|
|
<literal>signalfd</literal>
|
|
para seus observadores
|
|
<link xlink:href="&url.ev.signal;">ev_signal</link>
|
|
(e
|
|
<link xlink:href="&url.ev.child;">ev_child</link>).
|
|
Essa API fornece sinais de forma síncrona, o que a torna
|
|
mais rápida e pode possibilitar a obtenção dos dados do sinal enfileirados.
|
|
Também pode simplificar o tratamento de sinais com threads, desde que os sinais
|
|
sejam bloqueados adequadamente nos threads.
|
|
<literal>Signalfd</literal>
|
|
não será usado por padrão.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-nosigmask">
|
|
<term>
|
|
<constant>Ev::FLAG_NOSIGMASK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Quando esta opção for especificada,
|
|
<literal>libev</literal>
|
|
evitará modificar a máscara do sinal. Especificamente, isso significa ter
|
|
certeza de que os sinais estão desbloqueados antes de recebê-los.
|
|
</simpara>
|
|
<simpara>
|
|
Esse comportamento é útil para manipulação de sinal personalizado ou manipulação
|
|
de sinais apenas em threads específicos.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.run-flags">
|
|
Opções passadas para
|
|
<methodname>Ev::run</methodname>
|
|
ou
|
|
<methodname>EvLoop::run</methodname>
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.run-nowait">
|
|
<term>
|
|
<constant>Ev::RUN_NOWAIT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Significa que o laço de eventos irá procurar novos eventos, irá tratar esses
|
|
eventos e quaisquer outros já pendentes, mas não irá esperar e bloquear
|
|
o processo caso não haja eventos e retornará após uma
|
|
iteração do laço. Às vezes, isso é útil para pesquisar e lidar com novos
|
|
eventos ao fazer cálculos demorados, para manter o programa
|
|
responsivo.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.run-once">
|
|
<term>
|
|
<constant>Ev::RUN_ONCE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Significa que o laço de eventos procurará novos eventos (aguardando se necessário)
|
|
e tratará desses e de quaisquer outros já pendentes. Ele bloqueará
|
|
o processo até que pelo menos um novo evento chegue (que pode ser um
|
|
evento interno ao próprio libev, portanto não há garantia de que um
|
|
retorno de chamada registrado pelo usuário será chamado) e retornará após uma
|
|
iteração do laço.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.break-flags">
|
|
Opção passada para
|
|
<methodname>Ev::stop</methodname>
|
|
, ou
|
|
<methodname>EvLoop::stop</methodname>
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.break-cancel">
|
|
<term>
|
|
<constant>Ev::BREAK_CANCEL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Cancele a operação de interrupção.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.break-one">
|
|
<term>
|
|
<constant>Ev::BREAK_ONE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Faz com que a chamada
|
|
<methodname>Ev::run</methodname>
|
|
(ou
|
|
<methodname>EvLoop::run</methodname>)
|
|
mais interna retorne.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.break-all">
|
|
<term>
|
|
<constant>Ev::BREAK_ALL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Faz com que todas as chamadas
|
|
<methodname>Ev::run</methodname>
|
|
(ou
|
|
<methodname>EvLoop::run</methodname>)
|
|
aninhadas retornem.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.watcher-pri">
|
|
Prioridades do observador:
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.minpri">
|
|
<term>
|
|
<constant>Ev::MINPRI</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Prioridade mínima permitida do observador.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.maxpri">
|
|
<term>
|
|
<constant>Ev::MAXPRI</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Prioridade máxima permitida do observador.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.watcher-revents">
|
|
Máscaras de bits de eventos (recebidos):
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.read">
|
|
<term>
|
|
<constant>Ev::READ</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
O descritor de arquivo no
|
|
observador <classname>EvIo</classname>
|
|
tornou-se legível.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.write">
|
|
<term>
|
|
<constant>Ev::WRITE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
O descritor de arquivo no
|
|
observador <classname>EvIo</classname>
|
|
tornou-se gravável.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.timer">
|
|
<term>
|
|
<constant>Ev::TIMER</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
O tempo do observador <classname>EvTimer</classname>
|
|
expirou.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.periodic">
|
|
<term>
|
|
<constant>Ev::PERIODIC</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
O tempo do observador <classname>EvPeriodic</classname>
|
|
expirou.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.signal">
|
|
<term>
|
|
<constant>Ev::SIGNAL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Um sinal especificado em
|
|
<methodname>EvSignal::__construct</methodname>
|
|
foi recebido.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.child">
|
|
<term>
|
|
<constant>Ev::CHILD</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
O
|
|
<parameter>pid</parameter>
|
|
especificado em
|
|
<methodname>EvChild::__construct</methodname>
|
|
recebeu uma alteração de status.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.stat">
|
|
<term>
|
|
<constant>Ev::STAT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
O caminho especificado no
|
|
observador <classname>EvStat</classname>
|
|
alterou seus atributos.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.idle">
|
|
<term>
|
|
<constant>Ev::IDLE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
O observador <classname>EvIdle</classname>
|
|
funciona quando não há nada a fazer com outros observadores.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.prepare">
|
|
<term>
|
|
<constant>Ev::PREPARE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Todos
|
|
os observadores <classname>EvPrepare</classname>
|
|
são invocados logo antes do início de
|
|
<methodname>Ev::run</methodname>.
|
|
Assim,
|
|
os observadores <classname>EvPrepare</classname>
|
|
são os últimos observadores invocados antes do laço de eventos dormir ou
|
|
pesquisar novos eventos.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.check">
|
|
<term>
|
|
<constant>Ev::CHECK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Todos
|
|
os observadores <classname>EvCheck</classname>
|
|
são enfileirados logo após
|
|
<methodname>Ev::run</methodname>
|
|
reunir os novos eventos, mas antes de enfileirar quaisquer retornos de chamada para
|
|
quaisquer eventos recebidos. Assim,
|
|
os observadores <classname>EvCheck</classname>
|
|
serão invocados antes de quaisquer outros observadores de prioridade igual ou
|
|
inferior dentro de uma iteração do laço de eventos.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.embed">
|
|
<term>
|
|
<constant>Ev::EMBED</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
O laço de eventos incorporado especificado no
|
|
observador <classname>EvEmbed</classname>
|
|
precisa de atenção.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.custom">
|
|
<term>
|
|
<constant>Ev::CUSTOM</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Nunca enviado (ou usado de outra forma) pela
|
|
própria <literal>libev</literal>,
|
|
mas pode ser usado livremente por usuários da
|
|
<literal>libev</literal>
|
|
para sinalizar observadores
|
|
(por exemplo, via
|
|
<methodname>EvWatcher::feed</methodname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.error">
|
|
<term>
|
|
<constant>Ev::ERROR</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Ocorreu um erro não especificado, o observador foi interrompido. Isto
|
|
pode acontecer porque o observador não pôde ser iniciado corretamente porque
|
|
<literal>libev</literal>
|
|
ficou sem memória, um descritor de arquivo foi fechado ou qualquer
|
|
outro problema.
|
|
<literal>Libev</literal>
|
|
considera esses bugs de aplicação. Veja também
|
|
<link xlink:href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#ANATOMY_OF_A_WATCHER_CONTENT">ANATOMIA
|
|
DE UM OBSERVADOR</link>
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.watcher-backends">
|
|
Opções de backend:
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.backend-select">
|
|
<term>
|
|
<constant>Ev::BACKEND_SELECT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
<literal>select(2) backend</literal>
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-poll">
|
|
<term>
|
|
<constant>Ev::BACKEND_POLL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
<literal>poll(2) backend</literal>
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-epoll">
|
|
<term>
|
|
<constant>Ev::BACKEND_EPOLL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Backend
|
|
<literal>epoll(7)</literal>
|
|
específico do Linux para kernels pré e pós-2.6.9
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-kqueue">
|
|
<term>
|
|
<constant>Ev::BACKEND_KQUEUE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Backend <literal>kqueue</literal>
|
|
usado na maioria dos sistemas BSD.
|
|
O observador <classname>EvEmbed</classname>
|
|
pode ser usado para incorporar um laço (com backend kqueue) em
|
|
outro. Por exemplo, pode-se tentar criar um laço de eventos com backend
|
|
<literal>kqueue</literal>
|
|
e usá-lo apenas para soquetes.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-devpoll">
|
|
<term>
|
|
<constant>Ev::BACKEND_DEVPOLL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Back-end do Solaris 8. Isso ainda não foi implementado.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-port">
|
|
<term>
|
|
<constant>Ev::BACKEND_PORT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Mecanismo de porta de eventos Solaris 10 com bom dimensionamento.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-all">
|
|
<term>
|
|
<constant>Ev::BACKEND_ALL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Experimente todos os back-ends (mesmo os corrompidos). Não é recomendado usá-lo
|
|
explicitamente. Operadores bit a bit devem ser aplicados aqui (por exemplo,
|
|
<constant>Ev::BACKEND_ALL</constant>
|
|
& ~
|
|
<constant>Ev::BACKEND_KQUEUE</constant>).
|
|
Use
|
|
<methodname>Ev::recommendedBackends</methodname>
|
|
ou não não especifique nenhum back-end.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-mask">
|
|
<term>
|
|
<constant>Ev::BACKEND_MASK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Não é um backend, mas uma máscara para selecionar todos os bits de
|
|
backend do valor <parameter>flags</parameter>
|
|
para mascarar quaisquer backends (por exemplo, ao modificar
|
|
a variável de ambiente
|
|
<varname>LIBEV_FLAGS</varname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<note xmlns="http://docbook.org/ns/docbook">
|
|
<simpara>
|
|
Para o laço padrão durante a fase de inicialização do módulo,
|
|
<literal>Ev</literal>
|
|
registra
|
|
<link xlink:href="&url.ev.loop;">ev_loop_fork</link>
|
|
chamada por meio de
|
|
<literal>pthread_atfork</literal>
|
|
(se disponível).
|
|
</simpara>
|
|
</note>
|
|
<note xmlns="http://docbook.org/ns/docbook">
|
|
<simpara>
|
|
Existem métodos que fornecem acesso ao
|
|
<emphasis>laço de eventos
|
|
padrão</emphasis>
|
|
na classe
|
|
<classname>Ev</classname>
|
|
(por exemplo,
|
|
<methodname>Ev::iteration</methodname>,
|
|
<methodname>Ev::depth</methodname>
|
|
etc.) Para
|
|
<emphasis>laços personalizados</emphasis>
|
|
(criados com
|
|
<methodname>EvLoop::__construct</methodname>)
|
|
esses valores podem ser acessados através de propriedades e métodos
|
|
correspondentes da
|
|
classe
|
|
<classname>EvLoop</classname>.
|
|
</simpara>
|
|
<simpara>
|
|
A instância do laço de eventos padrão em si pode ser obtida por meio do
|
|
método
|
|
<methodname>EvLoop::defaultLoop</methodname>.
|
|
</simpara>
|
|
</note>
|
|
</section>
|
|
<!-- }}} -->
|
|
</partintro>
|
|
|
|
&reference.ev.entities.ev;
|
|
|
|
</reference>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|