Files
doc-fr/reference/ev/evidle.xml
2022-03-30 13:02:03 +01:00

100 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 33e5f4ef7243bc1282acb1cba93e8f99c1debe68 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xml:id="class.evidle" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>La classe EvIdle</title>
<titleabbrev>EvIdle</titleabbrev>
<partintro>
<!-- {{{ EvIdle intro -->
<section xml:id="evidle.intro">
&reftitle.intro;
<para>
Les watchers <classname>EvIdle</classname> lancent les événements
lorsqu'aucun autre événement ayant la même (ou supérieure) priorité
n'est en attente (<classname>EvPrepare</classname>, <classname>EvCheck</classname>
et d'autres watchers <classname>EvIdle</classname> ne comptent pas
recevoir d'<emphasis>événements</emphasis>).
</para>
<para>
Aussi, tant que le processus est en cours de gestion des sockets ou
des délais d'attente maximal (ou même de signaux) de même priorité (ou de
priorité supérieure), il ne sera pas lancé. Mais lorsque le processus
est au ralenti (ou que seuls des watchers ayant une priorité basse ne sont
en attente), les watchers <classname>EvIdle</classname> seront appelés
une fois par itération de la boucle d'événements - et ce, tant qu'ils
ne sont pas stoppés, ou que le processus ne recoive plus d'événements
et devienne ainsi occupé à gérer les travaux ayant une priorité supérieure.
</para>
<para>
En plus de maintenir le processus non bloquant (ce qui est utile parfois),
les watchers <classname>EvIdle</classname> sont un bon endroit
pour réaliser des <emphasis>"travaux en pseudo-arrière plan"</emphasis>,
ou remettre des travaux après que la boucle d'événements n'ait gérée
les événements exceptionnels.
</para>
<para>
L'effet le plus notable est que, tant que des watchers
<emphasis>idle</emphasis> sont actifs, le processus
<emphasis>ne va pas</emphasis> bloquer lors de l'attente de nouveaux
événements.
</para>
</section>
<!-- }}} -->
<section xml:id="evidle.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>EvIdle</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>EvIdle</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>EvWatcher</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<!--<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>-->
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('evwatcher.synopsis')/descendant::db:fieldsynopsis)" />
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evidle')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])"/>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evidle')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evwatcher')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
</classsynopsis>
<!-- }}} -->
</section>
<!-- }}} -->
</partintro>
&reference.ev.entities.evidle;
</phpdoc:classref>
<!-- 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
-->