<?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> <phpdoc:classref xml:id="class.evsignal" 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>The EvSignal class</title> <titleabbrev>EvSignal</titleabbrev> <partintro> <!-- {{{ EvSignal intro --> <section xml:id="evsignal.intro"> &reftitle.intro; <para> <classname>EvSignal</classname> watchers will trigger an event when the process receives a specific signal one or more times. Even though signals are very asynchronous, <emphasis>libev</emphasis> will try its best to deliver signals synchronously, i.e. as part of the normal event processing, like any other event. </para> <para> There is no limit for the number of watchers for the same signal, but only within the same loop, i.e. one can watch for <constant>SIGINT</constant> in the default loop and for <constant>SIGIO</constant> in another loop, but it is not allowed to watch for <constant>SIGINT</constant> in both the default loop and another loop at the same time. At the moment, <constant>SIGCHLD</constant> is permanently tied to the default loop. </para> <para> If possible and supported, <emphasis>libev</emphasis> will install its handlers with <literal>SA_RESTART</literal> (or equivalent) behaviour enabled, so system calls should not be unduly interrupted. In case of a problem with system calls getting interrupted by signals, all the signals can be blocked in an <classname>EvCheck</classname> watcher and unblocked in a <classname>EvPrepare</classname> watcher. </para> </section> <!-- }}} --> <section xml:id="evsignal.synopsis"> &reftitle.classsynopsis; <!-- {{{ Synopsis --> <classsynopsis> <ooclass> <classname>EvSignal</classname> </ooclass> <!-- {{{ Class synopsis --> <classsynopsisinfo> <ooclass> <classname>EvSignal</classname> </ooclass> <ooclass> <modifier>extends</modifier> <classname>EvWatcher</classname> </ooclass> </classsynopsisinfo> <!-- }}} --> <classsynopsisinfo role="comment">&Properties;</classsynopsisinfo> <fieldsynopsis> <modifier>public</modifier> <varname linkend="evsignal.props.signum">signum</varname> </fieldsynopsis> <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.evsignal')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" /> <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> <!-- {{{ EvSignal properties --> <section xml:id="evsignal.props"> &reftitle.properties; <variablelist> <varlistentry xml:id="evsignal.props.signum"> <term> <varname>signum</varname> </term> <listitem> <para> Signal number. See the constants exported by <emphasis>pcntl</emphasis> extension. See also <literal>signal(7)</literal> man page. </para> </listitem> </varlistentry> </variablelist> </section> <!-- }}} --> </partintro> &reference.ev.entities.evsignal; </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 -->