<?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
-->