1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-25 16:22:18 +01:00
Files
archived-doc-ru/reference/event/eventbase.xml
2024-06-18 12:09:47 +03:00

233 lines
8.8 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.eventbase" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс EventBase</title>
<titleabbrev>EventBase</titleabbrev>
<partintro>
<!-- {{{ EventBase intro -->
<section xml:id="eventbase.intro">
&reftitle.intro;
<para>
Класс <classname>EventBase</classname> представляет структуру
событийной базы модуля libevent. Он содержит набор событий и может
их опрашивать для определения, какие из них активны.
</para>
<para>
Каждая событийная база имеет
<emphasis>метод</emphasis>
или
<emphasis>бэкенд</emphasis>, которые используются для
определения готовых событий. Используемые методы:
<literal>select</literal>
,
<literal>poll</literal>
,
<literal>epoll</literal>
,
<literal>kqueue</literal>
,
<literal>devpoll</literal>
,
<literal>evport</literal>
и
<literal>win32</literal>
.
</para>
<para>
Для настройки событийной базы или для исключения определённых
бэкендов можно использовать класс <classname>EventConfig</classname>.
</para>
<warning xml:id="eventbase.object-dtor-warning">
<para>
<emphasis>НЕ</emphasis>
разрушайте объект
<classname>EventBase</classname>
пока не освобождены связанные с <literal>Event</literal> ресурсы.
В противном случае это приведёт к непредсказуемым результатам!
</para>
</warning>
</section>
<!-- }}} -->
<section xml:id="eventbase.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>EventBase</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<modifier>final</modifier>
<classname>EventBase</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.loop-once">EventBase::LOOP_ONCE</varname>
<initializer>1</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.loop-nonblock">EventBase::LOOP_NONBLOCK</varname>
<initializer>2</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.nolock">EventBase::NOLOCK</varname>
<initializer>1</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.startup-iocp">EventBase::STARTUP_IOCP</varname>
<initializer>4</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.no-cache-time">EventBase::NO_CACHE_TIME</varname>
<initializer>8</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.epoll-use-changelist">EventBase::EPOLL_USE_CHANGELIST</varname>
<initializer>16</initializer>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.eventbase')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
</classsynopsis>
<!-- }}} -->
</section>
<!-- {{{ EventBase constants -->
<section xml:id="eventbase.constants">
&reftitle.constants;
<variablelist>
<varlistentry xml:id="eventbase.constants.loop-once">
<term>
<constant>EventBase::LOOP_ONCE</constant>
</term>
<listitem>
<para>
Флаг используется с методом
<methodname>EventBase::loop</methodname>
и означает: «блокировать, пока модуль libevent не получит активное событие, а затем
выйти после завершения callback-функции для всех
активных событий».
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.loop-nonblock">
<term>
<constant>EventBase::LOOP_NONBLOCK</constant>
</term>
<listitem>
<para>
Флаг используется с методом
<methodname>EventBase::loop</methodname>
и означает: «не блокировать: посмотреть, какие события уже готовы, запустить
обратные вызовы с наивысшим приоритетом, затем выйти».
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.nolock">
<term>
<constant>EventBase::NOLOCK</constant>
</term>
<listitem>
<para>
Флаг конфигурации. Не выделять блокировку для событийной базы,
даже если блокирование настроено.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.startup-iocp">
<term>
<constant>EventBase::STARTUP_IOCP</constant>
</term>
<listitem>
<para>
Флаг конфигурации только для ОС Windows.
Разрешает диспетчер IOCP при старте.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.no-cache-time">
<term>
<constant>EventBase::NO_CACHE_TIME</constant>
</term>
<listitem>
<para>
Флаг конфигурации. Вместо проверки текущего времени каждый раз, когда
цикл готов запустить функцию обратного вызова по таймеру, проверять его
после каждого вызова такой функции.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.epoll-use-changelist">
<term>
<constant>EventBase::EPOLL_USE_CHANGELIST</constant>
</term>
<listitem>
<para>
Если используется бэкенд
<literal>epoll</literal>
, этот флаг сообщает, что можно безопасно использовать внутренний код
списка изменений Libevent для пакетного добавления и удаления в целях
минимизации количества системных вызовов.
</para>
<para>
Установка этого флага может повысить производительность, но может
привести к проявлению бага Linux: не безопасно использовать этот
флаг, если любой из файловых дескрипторов был клонирован с
помощью dup() или его аналогов. Может привести к странным и
трудно диагностируемым ошибкам.
</para>
<para>
Этот флаг также может быть активирован установкой переменной
окружения <literal>EVENT_EPOLL_USE_CHANGELIST</literal>.
</para>
<para>
Этот флаг не действует, если вы используете любой бэкенд, кроме
<literal>epoll</literal>
.
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
</partintro>
&reference.event.entities.eventbase;
</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
-->