Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 19a466aa43e0f0793b72d6a6c3524ff5 > files > 90

ocaml-async_unix-devel-109.24.00-2.mga4.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Signal.html">
<link rel="next" href="Std.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Async_print" rel="Chapter" href="Async_print.html">
<link title="Async_sys" rel="Chapter" href="Async_sys.html">
<link title="Epoll_file_descr_watcher" rel="Chapter" href="Epoll_file_descr_watcher.html">
<link title="Fd" rel="Chapter" href="Fd.html">
<link title="Fd_by_descr" rel="Chapter" href="Fd_by_descr.html">
<link title="File_descr_watcher_intf" rel="Chapter" href="File_descr_watcher_intf.html">
<link title="Import" rel="Chapter" href="Import.html">
<link title="Interruptor" rel="Chapter" href="Interruptor.html">
<link title="In_thread" rel="Chapter" href="In_thread.html">
<link title="Io_stats" rel="Chapter" href="Io_stats.html">
<link title="Process" rel="Chapter" href="Process.html">
<link title="Raw_fd" rel="Chapter" href="Raw_fd.html">
<link title="Raw_scheduler" rel="Chapter" href="Raw_scheduler.html">
<link title="Raw_signal_manager" rel="Chapter" href="Raw_signal_manager.html">
<link title="Reader" rel="Chapter" href="Reader.html">
<link title="Read_write" rel="Chapter" href="Read_write.html">
<link title="Scheduler" rel="Chapter" href="Scheduler.html">
<link title="Select_file_descr_watcher" rel="Chapter" href="Select_file_descr_watcher.html">
<link title="Shutdown" rel="Chapter" href="Shutdown.html">
<link title="Signal" rel="Chapter" href="Signal.html">
<link title="Signal_manager" rel="Chapter" href="Signal_manager.html">
<link title="Std" rel="Chapter" href="Std.html">
<link title="Syscall" rel="Chapter" href="Syscall.html">
<link title="Thread_pool" rel="Chapter" href="Thread_pool.html">
<link title="Thread_safe" rel="Chapter" href="Thread_safe.html">
<link title="Thread_safe_pipe" rel="Chapter" href="Thread_safe_pipe.html">
<link title="Unix_syscalls" rel="Chapter" href="Unix_syscalls.html">
<link title="Writer" rel="Chapter" href="Writer.html"><title>Signal_manager</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Signal.html" title="Signal">Previous</a>
&nbsp;<a class="up" href="index.html" title="Index">Up</a>
&nbsp;<a class="post" href="Std.html" title="Std">Next</a>
</div>
<h1>Module <a href="type_Signal_manager.html">Signal_manager</a></h1>

<pre><span class="keyword">module</span> Signal_manager: <code class="code">sig</code> <a href="Signal_manager.html">..</a> <code class="code">end</code></pre><div class="info module top">
A signal manager keeps track of a set of signals to be managed and the signal handlers
    for them.  When a signal manager is managing a signal, it installs its own OCaml
    handler for that signal that records delivery of the signal.  It then later, upon
    request, will deliver the signal to all its handlers.
<p>

    Once a signal manager starts managing a signal, it never stops.<br>
</div>
<hr width="100%">

<pre><span id="TYPEt"><span class="keyword">type</span> <code class="type"></code>t</span> </pre>


<pre><span class="keyword">include</span> Invariant.S</pre>

<pre><span id="VALcreate"><span class="keyword">val</span> create</span> : <code class="type">thread_safe_notify_signal_delivered:(unit -> unit) -> <a href="Signal_manager.html#TYPEt">t</a></code></pre><div class="info ">
<code class="code">create</code> creates and returns a signal manager <code class="code">t</code>.  Whenever a signal that <code class="code">t</code> is
    managing is delivered, it will call <code class="code">thread_safe_notify_signal_delivered</code> from within
    the OCaml signal handler.  Therefore <code class="code">thread_safe_notify_signal_delivered</code> must be
    thread safe.<br>
</div>

<pre><span id="VALmanage"><span class="keyword">val</span> manage</span> : <code class="type"><a href="Signal_manager.html#TYPEt">t</a> -> Core.Std.Signal.t -> unit</code></pre><div class="info ">
<code class="code">manage t signal</code> causes <code class="code">t</code> to manage <code class="code">signal</code>, thus overriding
    <code class="code">default_sys_behavior</code> for that signal, and any other OCaml handler for that
    signal.<br>
</div>

<pre><span id="VALis_managing"><span class="keyword">val</span> is_managing</span> : <code class="type"><a href="Signal_manager.html#TYPEt">t</a> -> Core.Std.Signal.t -> bool</code></pre><div class="info ">
<code class="code">is_managing t signal</code> returns true iff <code class="code">manage t signal</code> has been called<br>
</div>

<pre><span id="TYPEhandler"><span class="keyword">type</span> <code class="type"></code>handler</span> </pre>
<div class="info ">
<code class="code">install_handler t signals f</code> causes <code class="code">t</code> to manage the handling of <code class="code">signals</code>, and
    registers <code class="code">f</code> to run on every signal in <code class="code">signals</code> that is delivered.   It is an
    error if <code class="code">f</code> ever raises when it is called.<br>
</div>


<pre><span id="VALinstall_handler"><span class="keyword">val</span> install_handler</span> : <code class="type"><a href="Signal_manager.html#TYPEt">t</a> -><br>       Core.Std.Signal.t list -><br>       (Core.Std.Signal.t -> unit) -> <a href="Signal_manager.html#TYPEhandler">handler</a></code></pre>
<pre><span id="VALremove_handler"><span class="keyword">val</span> remove_handler</span> : <code class="type"><a href="Signal_manager.html#TYPEt">t</a> -> <a href="Signal_manager.html#TYPEhandler">handler</a> -> unit</code></pre><div class="info ">
<code class="code">remove_handler handler</code> causes the particular <code class="code">handler</code> to no longer handle the
    signals it was registered to handle.  The signal manager continues to manage those
    signals, i.e. the OCaml signal handler remains installed, whether or not they still
    have handlers.<br>
</div>

<pre><span id="VALhandle_delivered"><span class="keyword">val</span> handle_delivered</span> : <code class="type"><a href="Signal_manager.html#TYPEt">t</a> -> unit</code></pre><div class="info ">
<code class="code">handle_delivered t</code> runs all signal handlers on the signals that have been
    delivered but not yet handled.<br>
</div>

<pre><span id="VALsexp_of_t"><span class="keyword">val</span> sexp_of_t</span> : <code class="type"><a href="Signal_manager.html#TYPEt">t</a> -> Sexplib.Sexp.t</code></pre><br>
<code class="code">create</code> creates and returns a signal manager <code class="code">t</code>.  Whenever a signal that <code class="code">t</code> is
    managing is delivered, it will call <code class="code">thread_safe_notify_signal_delivered</code> from within
    the OCaml signal handler.  Therefore <code class="code">thread_safe_notify_signal_delivered</code> must be
    thread safe.<br>
<br>
<code class="code">manage t signal</code> causes <code class="code">t</code> to manage <code class="code">signal</code>, thus overriding
    <code class="code">default_sys_behavior</code> for that signal, and any other OCaml handler for that
    signal.<br>
<br>
<code class="code">is_managing t signal</code> returns true iff <code class="code">manage t signal</code> has been called<br>
<br>
<code class="code">install_handler t signals f</code> causes <code class="code">t</code> to manage the handling of <code class="code">signals</code>, and
    registers <code class="code">f</code> to run on every signal in <code class="code">signals</code> that is delivered.   It is an
    error if <code class="code">f</code> ever raises when it is called.<br>
<br>
<code class="code">remove_handler handler</code> causes the particular <code class="code">handler</code> to no longer handle the
    signals it was registered to handle.  The signal manager continues to manage those
    signals, i.e. the OCaml signal handler remains installed, whether or not they still
    have handlers.<br>
<br>
<code class="code">handle_delivered t</code> runs all signal handlers on the signals that have been
    delivered but not yet handled.<br>
</body></html>