Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 4218

ghc-7.4.2-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>System.Posix.Signals</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_System-Posix-Signals.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">unix-2.5.1.1: POSIX functionality</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (requires POSIX)</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">System.Posix.Signals</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The Signal type
</a></li><li><a href="#g:2">Specific signals
</a></li><li><a href="#g:3">Sending signals
</a></li><li><a href="#g:4">Handling signals
</a></li><li><a href="#g:5">Signal sets
</a></li><li><a href="#g:6">The process signal mask
</a></li><li><a href="#g:7">The alarm timer
</a></li><li><a href="#g:8">Waiting for signals
</a></li><li><a href="#g:9">The <code>NOCLDSTOP</code> flag
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>POSIX signal support
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Signal">Signal</a> = <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:nullSignal">nullSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:internalAbort">internalAbort</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigABRT">sigABRT</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:realTimeAlarm">realTimeAlarm</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigALRM">sigALRM</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:busError">busError</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigBUS">sigBUS</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:processStatusChanged">processStatusChanged</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigCHLD">sigCHLD</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:continueProcess">continueProcess</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigCONT">sigCONT</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:floatingPointException">floatingPointException</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigFPE">sigFPE</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:lostConnection">lostConnection</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigHUP">sigHUP</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:illegalInstruction">illegalInstruction</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigILL">sigILL</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:keyboardSignal">keyboardSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigINT">sigINT</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:killProcess">killProcess</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigKILL">sigKILL</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:openEndedPipe">openEndedPipe</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigPIPE">sigPIPE</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:keyboardTermination">keyboardTermination</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigQUIT">sigQUIT</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:segmentationViolation">segmentationViolation</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigSEGV">sigSEGV</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:softwareStop">softwareStop</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigSTOP">sigSTOP</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:softwareTermination">softwareTermination</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigTERM">sigTERM</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:keyboardStop">keyboardStop</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigTSTP">sigTSTP</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:backgroundRead">backgroundRead</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigTTIN">sigTTIN</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:backgroundWrite">backgroundWrite</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigTTOU">sigTTOU</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:userDefinedSignal1">userDefinedSignal1</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigUSR1">sigUSR1</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:userDefinedSignal2">userDefinedSignal2</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigUSR2">sigUSR2</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:pollableEvent">pollableEvent</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigPOLL">sigPOLL</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:profilingTimerExpired">profilingTimerExpired</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigPROF">sigPROF</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:badSystemCall">badSystemCall</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigSYS">sigSYS</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:breakpointTrap">breakpointTrap</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigTRAP">sigTRAP</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:urgentDataAvailable">urgentDataAvailable</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigURG">sigURG</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:virtualTimerExpired">virtualTimerExpired</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigVTALRM">sigVTALRM</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:cpuTimeLimitExceeded">cpuTimeLimitExceeded</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigXCPU">sigXCPU</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:fileSizeLimitExceeded">fileSizeLimitExceeded</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></li><li class="src short"><a href="#v:sigXFSZ">sigXFSZ</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></li><li class="src short"><a href="#v:raiseSignal">raiseSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:signalProcess">signalProcess</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ProcessID">ProcessID</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:signalProcessGroup">signalProcessGroup</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ProcessGroupID">ProcessGroupID</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Handler">Handler</a> <ul class="subs"><li>= <a href="#v:Default">Default</a>  </li><li>| <a href="#v:Ignore">Ignore</a>  </li><li>| <a href="#v:Catch">Catch</a> (<a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ())  </li><li>| <a href="#v:CatchOnce">CatchOnce</a> (<a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ())  </li></ul></li><li class="src short"><a href="#v:installHandler">installHandler</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="System-Posix-Signals.html#t:Handler">Handler</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="System-Posix-Signals.html#t:Handler">Handler</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:SignalSet">SignalSet</a> </li><li class="src short"><a href="#v:emptySignalSet">emptySignalSet</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></li><li class="src short"><a href="#v:fullSignalSet">fullSignalSet</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></li><li class="src short"><a href="#v:reservedSignals">reservedSignals</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></li><li class="src short"><a href="#v:addSignal">addSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></li><li class="src short"><a href="#v:deleteSignal">deleteSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></li><li class="src short"><a href="#v:inSignalSet">inSignalSet</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:getSignalMask">getSignalMask</a> :: <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></li><li class="src short"><a href="#v:setSignalMask">setSignalMask</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:blockSignals">blockSignals</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:unblockSignals">unblockSignals</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:scheduleAlarm">scheduleAlarm</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:getPendingSignals">getPendingSignals</a> :: <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></li><li class="src short"><a href="#v:awaitSignal">awaitSignal</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:setStoppedChildFlag">setStoppedChildFlag</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:queryStoppedChildFlag">queryStoppedChildFlag</a> :: <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1 id="g:1">The Signal type
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Signal" class="def">Signal</a> = <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><h1 id="g:2">Specific signals
</h1><div class="top"><p class="src"><a name="v:nullSignal" class="def">nullSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:internalAbort" class="def">internalAbort</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigABRT" class="def">sigABRT</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:realTimeAlarm" class="def">realTimeAlarm</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigALRM" class="def">sigALRM</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:busError" class="def">busError</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigBUS" class="def">sigBUS</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:processStatusChanged" class="def">processStatusChanged</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigCHLD" class="def">sigCHLD</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:continueProcess" class="def">continueProcess</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigCONT" class="def">sigCONT</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:floatingPointException" class="def">floatingPointException</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigFPE" class="def">sigFPE</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:lostConnection" class="def">lostConnection</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigHUP" class="def">sigHUP</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:illegalInstruction" class="def">illegalInstruction</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigILL" class="def">sigILL</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:keyboardSignal" class="def">keyboardSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigINT" class="def">sigINT</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:killProcess" class="def">killProcess</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigKILL" class="def">sigKILL</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:openEndedPipe" class="def">openEndedPipe</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigPIPE" class="def">sigPIPE</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:keyboardTermination" class="def">keyboardTermination</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigQUIT" class="def">sigQUIT</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:segmentationViolation" class="def">segmentationViolation</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigSEGV" class="def">sigSEGV</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:softwareStop" class="def">softwareStop</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigSTOP" class="def">sigSTOP</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:softwareTermination" class="def">softwareTermination</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigTERM" class="def">sigTERM</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:keyboardStop" class="def">keyboardStop</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigTSTP" class="def">sigTSTP</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:backgroundRead" class="def">backgroundRead</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigTTIN" class="def">sigTTIN</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:backgroundWrite" class="def">backgroundWrite</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigTTOU" class="def">sigTTOU</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:userDefinedSignal1" class="def">userDefinedSignal1</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigUSR1" class="def">sigUSR1</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:userDefinedSignal2" class="def">userDefinedSignal2</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigUSR2" class="def">sigUSR2</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:pollableEvent" class="def">pollableEvent</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigPOLL" class="def">sigPOLL</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:profilingTimerExpired" class="def">profilingTimerExpired</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigPROF" class="def">sigPROF</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:badSystemCall" class="def">badSystemCall</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigSYS" class="def">sigSYS</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:breakpointTrap" class="def">breakpointTrap</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigTRAP" class="def">sigTRAP</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:urgentDataAvailable" class="def">urgentDataAvailable</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigURG" class="def">sigURG</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:virtualTimerExpired" class="def">virtualTimerExpired</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigVTALRM" class="def">sigVTALRM</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:cpuTimeLimitExceeded" class="def">cpuTimeLimitExceeded</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigXCPU" class="def">sigXCPU</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><div class="top"><p class="src"><a name="v:fileSizeLimitExceeded" class="def">fileSizeLimitExceeded</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a></p></div><div class="top"><p class="src"><a name="v:sigXFSZ" class="def">sigXFSZ</a> :: <a href="../base-4.5.1.0/Foreign-C-Types.html#t:CInt">CInt</a></p></div><h1 id="g:3">Sending signals
</h1><div class="top"><p class="src"><a name="v:raiseSignal" class="def">raiseSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p><code>raiseSignal int</code> calls <code>kill</code> to signal the current process
   with interrupt signal <code>int</code>. 
</p></div></div><div class="top"><p class="src"><a name="v:signalProcess" class="def">signalProcess</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ProcessID">ProcessID</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p><code>signalProcess int pid</code> calls <code>kill</code> to signal process <code>pid</code> 
   with interrupt signal <code>int</code>.
</p></div></div><div class="top"><p class="src"><a name="v:signalProcessGroup" class="def">signalProcessGroup</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="../base-4.5.1.0/System-Posix-Types.html#t:ProcessGroupID">ProcessGroupID</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p><code>signalProcessGroup int pgid</code> calls <code>kill</code> to signal 
  all processes in group <code>pgid</code> with interrupt signal <code>int</code>.
</p></div></div><h1 id="g:4">Handling signals
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Handler" class="def">Handler</a>  </p><div class="doc"><p>The actions to perform when a signal is received.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Default" class="def">Default</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Ignore" class="def">Ignore</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Catch" class="def">Catch</a> (<a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ())</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CatchOnce" class="def">CatchOnce</a> (<a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ())</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Handler" class="caption collapser" onclick="toggleSection('i:Handler')">Instances</p><div id="section.i:Handler" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="System-Posix-Signals.html#t:Handler">Handler</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:installHandler" class="def">installHandler</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="System-Posix-Signals.html#t:Signal">Signal</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="System-Posix-Signals.html#t:Handler">Handler</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></td><td class="doc"><p>other signals to block
</p></td></tr><tr><td class="src">-&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="System-Posix-Signals.html#t:Handler">Handler</a></td><td class="doc"><p>old handler
</p></td></tr></table></div><div class="doc"><p><code>installHandler int handler iset</code> calls <code>sigaction</code> to install an
   interrupt handler for signal <code>int</code>.  If <code>handler</code> is <code>Default</code>,
   <code>SIG_DFL</code> is installed; if <code>handler</code> is <code>Ignore</code>, <code>SIG_IGN</code> is
   installed; if <code>handler</code> is <code>Catch action</code>, a handler is installed
   which will invoke <code>action</code> in a new thread when (or shortly after) the
   signal is received.
   If <code>iset</code> is <code>Just s</code>, then the <code>sa_mask</code> of the <code>sigaction</code> structure
   is set to <code>s</code>; otherwise it is cleared.  The previously installed
   signal handler for <code>int</code> is returned
</p></div></div><h1 id="g:5">Signal sets
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:SignalSet" class="def">SignalSet</a>  </p></div><div class="top"><p class="src"><a name="v:emptySignalSet" class="def">emptySignalSet</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></p></div><div class="top"><p class="src"><a name="v:fullSignalSet" class="def">fullSignalSet</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></p></div><div class="top"><p class="src"><a name="v:reservedSignals" class="def">reservedSignals</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></p><div class="doc"><p>A set of signals reserved for use by the implementation.  In GHC, this will normally
 include either <code><a href="System-Posix-Signals.html#v:sigVTALRM">sigVTALRM</a></code> or <code><a href="System-Posix-Signals.html#v:sigALRM">sigALRM</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:addSignal" class="def">addSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></p></div><div class="top"><p class="src"><a name="v:deleteSignal" class="def">deleteSignal</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></p></div><div class="top"><p class="src"><a name="v:inSignalSet" class="def">inSignalSet</a> :: <a href="System-Posix-Signals.html#t:Signal">Signal</a> -&gt; <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><h1 id="g:6">The process signal mask
</h1><div class="top"><p class="src"><a name="v:getSignalMask" class="def">getSignalMask</a> :: <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></p><div class="doc"><p><code>getSignalMask</code> calls <code>sigprocmask</code> to determine the
   set of interrupts which are currently being blocked.
</p></div></div><div class="top"><p class="src"><a name="v:setSignalMask" class="def">setSignalMask</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p><code>setSignalMask mask</code> calls <code>sigprocmask</code> with
   <code>SIG_SETMASK</code> to block all interrupts in <code>mask</code>.
</p></div></div><div class="top"><p class="src"><a name="v:blockSignals" class="def">blockSignals</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p><code>blockSignals mask</code> calls <code>sigprocmask</code> with
   <code>SIG_BLOCK</code> to add all interrupts in <code>mask</code> to the
  set of blocked interrupts.
</p></div></div><div class="top"><p class="src"><a name="v:unblockSignals" class="def">unblockSignals</a> :: <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p><code>unblockSignals mask</code> calls <code>sigprocmask</code> with
   <code>SIG_UNBLOCK</code> to remove all interrupts in <code>mask</code> from the
   set of blocked interrupts. 
</p></div></div><h1 id="g:7">The alarm timer
</h1><div class="top"><p class="src"><a name="v:scheduleAlarm" class="def">scheduleAlarm</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></p><div class="doc"><p><code>scheduleAlarm i</code> calls <code>alarm</code> to schedule a real time
   alarm at least <code>i</code> seconds in the future.
</p></div></div><h1 id="g:8">Waiting for signals
</h1><div class="top"><p class="src"><a name="v:getPendingSignals" class="def">getPendingSignals</a> :: <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a></p><div class="doc"><p><code>getPendingSignals</code> calls <code>sigpending</code> to obtain
   the set of interrupts which have been received but are currently blocked.
</p></div></div><div class="top"><p class="src"><a name="v:awaitSignal" class="def">awaitSignal</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="System-Posix-Signals.html#t:SignalSet">SignalSet</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p><code>awaitSignal iset</code> suspends execution until an interrupt is received.
 If <code>iset</code> is <code>Just s</code>, <code>awaitSignal</code> calls <code>sigsuspend</code>, installing
 <code>s</code> as the new signal mask before suspending execution; otherwise, it
 calls <code>sigsuspend</code> with current signal mask. Note that RTS
 scheduler signal (either <code><a href="System-Posix-Signals.html#v:virtualTimerExpired">virtualTimerExpired</a></code> or <code><a href="System-Posix-Signals.html#v:realTimeAlarm">realTimeAlarm</a></code>) 
 could cause premature termination of this call. It might be necessary to block that
 signal before invocation of <code>awaitSignal</code> with <code><a href="System-Posix-Signals.html#v:blockSignals">blockSignals</a></code> <code><a href="System-Posix-Signals.html#v:reservedSignals">reservedSignals</a></code>.
</p><p><code>awaitSignal</code> returns when signal was received and processed by a
 signal handler, or if the signal could not be caught. If you have
 installed any signal handlers with <code>installHandler</code>, it may be wise
 to call <code>yield</code> directly after <code>awaitSignal</code> to ensure that the
 signal handler runs as promptly as possible.
</p></div></div><h1 id="g:9">The <code>NOCLDSTOP</code> flag
</h1><div class="top"><p class="src"><a name="v:setStoppedChildFlag" class="def">setStoppedChildFlag</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Tells the system whether or not to set the <code>SA_NOCLDSTOP</code> flag when
 installing new signal handlers.
</p></div></div><div class="top"><p class="src"><a name="v:queryStoppedChildFlag" class="def">queryStoppedChildFlag</a> :: <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Queries the current state of the stopped child flag.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>