<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >System.Posix.Signals</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_System-Posix-Signals.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >unix-2.3.2.0: POSIX functionality</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >System.Posix.Signals</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >non-portable (requires POSIX)</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >provisional</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >libraries@haskell.org</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >The Signal type </A ></DT ><DT ><A HREF="#2" >Specific signals </A ></DT ><DT ><A HREF="#3" >Sending signals </A ></DT ><DT ><A HREF="#4" >Handling signals </A ></DT ><DT ><A HREF="#5" >Signal sets </A ></DT ><DT ><A HREF="#6" >The process signal mask </A ></DT ><DT ><A HREF="#7" >The alarm timer </A ></DT ><DT ><A HREF="#8" >Waiting for signals </A ></DT ><DT ><A HREF="#9" >The <TT >NOCLDSTOP</TT > flag </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >POSIX signal support </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ASignal" >Signal</A > = <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnullSignal" >nullSignal</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinternalAbort" >internalAbort</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigABRT" >sigABRT</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ArealTimeAlarm" >realTimeAlarm</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigALRM" >sigALRM</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AbusError" >busError</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigBUS" >sigBUS</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AprocessStatusChanged" >processStatusChanged</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigCHLD" >sigCHLD</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcontinueProcess" >continueProcess</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigCONT" >sigCONT</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfloatingPointException" >floatingPointException</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigFPE" >sigFPE</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlostConnection" >lostConnection</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigHUP" >sigHUP</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AillegalInstruction" >illegalInstruction</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigILL" >sigILL</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AkeyboardSignal" >keyboardSignal</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigINT" >sigINT</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AkillProcess" >killProcess</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigKILL" >sigKILL</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AopenEndedPipe" >openEndedPipe</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigPIPE" >sigPIPE</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AkeyboardTermination" >keyboardTermination</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigQUIT" >sigQUIT</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsegmentationViolation" >segmentationViolation</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigSEGV" >sigSEGV</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsoftwareStop" >softwareStop</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigSTOP" >sigSTOP</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsoftwareTermination" >softwareTermination</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigTERM" >sigTERM</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AkeyboardStop" >keyboardStop</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigTSTP" >sigTSTP</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AbackgroundRead" >backgroundRead</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigTTIN" >sigTTIN</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AbackgroundWrite" >backgroundWrite</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigTTOU" >sigTTOU</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AuserDefinedSignal1" >userDefinedSignal1</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigUSR1" >sigUSR1</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AuserDefinedSignal2" >userDefinedSignal2</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigUSR2" >sigUSR2</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApollableEvent" >pollableEvent</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigPOLL" >sigPOLL</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AprofilingTimerExpired" >profilingTimerExpired</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigPROF" >sigPROF</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AbadSystemCall" >badSystemCall</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigSYS" >sigSYS</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AbreakpointTrap" >breakpointTrap</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigTRAP" >sigTRAP</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AurgentDataAvailable" >urgentDataAvailable</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigURG" >sigURG</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvirtualTimerExpired" >virtualTimerExpired</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigVTALRM" >sigVTALRM</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcpuTimeLimitExceeded" >cpuTimeLimitExceeded</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigXCPU" >sigXCPU</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfileSizeLimitExceeded" >fileSizeLimitExceeded</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsigXFSZ" >sigXFSZ</A > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AraiseSignal" >raiseSignal</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsignalProcess" >signalProcess</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="../base/System-Posix-Types.html#t%3AProcessID" >ProcessID</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsignalProcessGroup" >signalProcessGroup</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="../base/System-Posix-Types.html#t%3AProcessGroupID" >ProcessGroupID</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AHandler" >Handler</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ADefault" >Default</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AIgnore" >Ignore</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACatch" >Catch</A > (<A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A >)</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACatchOnce" >CatchOnce</A > (<A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A >)</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinstallHandler" >installHandler</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="System-Posix-Signals.html#t%3AHandler" >Handler</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Signals.html#t%3AHandler" >Handler</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ASignalSet" >SignalSet</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AemptySignalSet" >emptySignalSet</A > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfullSignalSet" >fullSignalSet</A > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AaddSignal" >addSignal</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdeleteSignal" >deleteSignal</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinSignalSet" >inSignalSet</A > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetSignalMask" >getSignalMask</A > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsetSignalMask" >setSignalMask</A > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AblockSignals" >blockSignals</A > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AunblockSignals" >unblockSignals</A > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AscheduleAlarm" >scheduleAlarm</A > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetPendingSignals" >getPendingSignals</A > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AawaitSignal" >awaitSignal</A > :: <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsetStoppedChildFlag" >setStoppedChildFlag</A > :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AqueryStoppedChildFlag" >queryStoppedChildFlag</A > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >The Signal type </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Signal" ><A NAME="t%3ASignal" ></A ></A ><B >Signal</B > = <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >Specific signals </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:nullSignal" ><A NAME="v%3AnullSignal" ></A ></A ><B >nullSignal</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:internalAbort" ><A NAME="v%3AinternalAbort" ></A ></A ><B >internalAbort</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigABRT" ><A NAME="v%3AsigABRT" ></A ></A ><B >sigABRT</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:realTimeAlarm" ><A NAME="v%3ArealTimeAlarm" ></A ></A ><B >realTimeAlarm</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigALRM" ><A NAME="v%3AsigALRM" ></A ></A ><B >sigALRM</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:busError" ><A NAME="v%3AbusError" ></A ></A ><B >busError</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigBUS" ><A NAME="v%3AsigBUS" ></A ></A ><B >sigBUS</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:processStatusChanged" ><A NAME="v%3AprocessStatusChanged" ></A ></A ><B >processStatusChanged</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigCHLD" ><A NAME="v%3AsigCHLD" ></A ></A ><B >sigCHLD</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:continueProcess" ><A NAME="v%3AcontinueProcess" ></A ></A ><B >continueProcess</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigCONT" ><A NAME="v%3AsigCONT" ></A ></A ><B >sigCONT</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:floatingPointException" ><A NAME="v%3AfloatingPointException" ></A ></A ><B >floatingPointException</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigFPE" ><A NAME="v%3AsigFPE" ></A ></A ><B >sigFPE</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lostConnection" ><A NAME="v%3AlostConnection" ></A ></A ><B >lostConnection</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigHUP" ><A NAME="v%3AsigHUP" ></A ></A ><B >sigHUP</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:illegalInstruction" ><A NAME="v%3AillegalInstruction" ></A ></A ><B >illegalInstruction</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigILL" ><A NAME="v%3AsigILL" ></A ></A ><B >sigILL</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:keyboardSignal" ><A NAME="v%3AkeyboardSignal" ></A ></A ><B >keyboardSignal</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigINT" ><A NAME="v%3AsigINT" ></A ></A ><B >sigINT</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:killProcess" ><A NAME="v%3AkillProcess" ></A ></A ><B >killProcess</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigKILL" ><A NAME="v%3AsigKILL" ></A ></A ><B >sigKILL</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:openEndedPipe" ><A NAME="v%3AopenEndedPipe" ></A ></A ><B >openEndedPipe</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigPIPE" ><A NAME="v%3AsigPIPE" ></A ></A ><B >sigPIPE</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:keyboardTermination" ><A NAME="v%3AkeyboardTermination" ></A ></A ><B >keyboardTermination</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigQUIT" ><A NAME="v%3AsigQUIT" ></A ></A ><B >sigQUIT</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:segmentationViolation" ><A NAME="v%3AsegmentationViolation" ></A ></A ><B >segmentationViolation</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigSEGV" ><A NAME="v%3AsigSEGV" ></A ></A ><B >sigSEGV</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:softwareStop" ><A NAME="v%3AsoftwareStop" ></A ></A ><B >softwareStop</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigSTOP" ><A NAME="v%3AsigSTOP" ></A ></A ><B >sigSTOP</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:softwareTermination" ><A NAME="v%3AsoftwareTermination" ></A ></A ><B >softwareTermination</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigTERM" ><A NAME="v%3AsigTERM" ></A ></A ><B >sigTERM</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:keyboardStop" ><A NAME="v%3AkeyboardStop" ></A ></A ><B >keyboardStop</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigTSTP" ><A NAME="v%3AsigTSTP" ></A ></A ><B >sigTSTP</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:backgroundRead" ><A NAME="v%3AbackgroundRead" ></A ></A ><B >backgroundRead</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigTTIN" ><A NAME="v%3AsigTTIN" ></A ></A ><B >sigTTIN</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:backgroundWrite" ><A NAME="v%3AbackgroundWrite" ></A ></A ><B >backgroundWrite</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigTTOU" ><A NAME="v%3AsigTTOU" ></A ></A ><B >sigTTOU</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:userDefinedSignal1" ><A NAME="v%3AuserDefinedSignal1" ></A ></A ><B >userDefinedSignal1</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigUSR1" ><A NAME="v%3AsigUSR1" ></A ></A ><B >sigUSR1</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:userDefinedSignal2" ><A NAME="v%3AuserDefinedSignal2" ></A ></A ><B >userDefinedSignal2</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigUSR2" ><A NAME="v%3AsigUSR2" ></A ></A ><B >sigUSR2</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:pollableEvent" ><A NAME="v%3ApollableEvent" ></A ></A ><B >pollableEvent</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigPOLL" ><A NAME="v%3AsigPOLL" ></A ></A ><B >sigPOLL</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:profilingTimerExpired" ><A NAME="v%3AprofilingTimerExpired" ></A ></A ><B >profilingTimerExpired</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigPROF" ><A NAME="v%3AsigPROF" ></A ></A ><B >sigPROF</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:badSystemCall" ><A NAME="v%3AbadSystemCall" ></A ></A ><B >badSystemCall</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigSYS" ><A NAME="v%3AsigSYS" ></A ></A ><B >sigSYS</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:breakpointTrap" ><A NAME="v%3AbreakpointTrap" ></A ></A ><B >breakpointTrap</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigTRAP" ><A NAME="v%3AsigTRAP" ></A ></A ><B >sigTRAP</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:urgentDataAvailable" ><A NAME="v%3AurgentDataAvailable" ></A ></A ><B >urgentDataAvailable</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigURG" ><A NAME="v%3AsigURG" ></A ></A ><B >sigURG</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:virtualTimerExpired" ><A NAME="v%3AvirtualTimerExpired" ></A ></A ><B >virtualTimerExpired</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigVTALRM" ><A NAME="v%3AsigVTALRM" ></A ></A ><B >sigVTALRM</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:cpuTimeLimitExceeded" ><A NAME="v%3AcpuTimeLimitExceeded" ></A ></A ><B >cpuTimeLimitExceeded</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigXCPU" ><A NAME="v%3AsigXCPU" ></A ></A ><B >sigXCPU</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:fileSizeLimitExceeded" ><A NAME="v%3AfileSizeLimitExceeded" ></A ></A ><B >fileSizeLimitExceeded</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sigXFSZ" ><A NAME="v%3AsigXFSZ" ></A ></A ><B >sigXFSZ</B > :: <A HREF="../base/Foreign-C-Types.html#t%3ACInt" >CInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="3" ><A NAME="3" >Sending signals </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:raiseSignal" ><A NAME="v%3AraiseSignal" ></A ></A ><B >raiseSignal</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >raiseSignal int</TT > calls <TT >kill</TT > to signal the current process with interrupt signal <TT >int</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:signalProcess" ><A NAME="v%3AsignalProcess" ></A ></A ><B >signalProcess</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="../base/System-Posix-Types.html#t%3AProcessID" >ProcessID</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >signalProcess int pid</TT > calls <TT >kill</TT > to signal process <TT >pid</TT > with interrupt signal <TT >int</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:signalProcessGroup" ><A NAME="v%3AsignalProcessGroup" ></A ></A ><B >signalProcessGroup</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="../base/System-Posix-Types.html#t%3AProcessGroupID" >ProcessGroupID</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >signalProcessGroup int pgid</TT > calls <TT >kill</TT > to signal all processes in group <TT >pgid</TT > with interrupt signal <TT >int</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="4" ><A NAME="4" >Handling signals </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Handler" ><A NAME="t%3AHandler" ></A ></A ><B >Handler</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >The actions to perform when a signal is received. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:Default" ><A NAME="v%3ADefault" ></A ></A ><B >Default</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Ignore" ><A NAME="v%3AIgnore" ></A ></A ><B >Ignore</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Catch" ><A NAME="v%3ACatch" ></A ></A ><B >Catch</B > (<A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A >)</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CatchOnce" ><A NAME="v%3ACatchOnce" ></A ></A ><B >CatchOnce</B > (<A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A >)</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Handler')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Handler" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Typeable.html#t%3ATypeable" >Typeable</A > <A HREF="System-Posix-Signals.html#t%3AHandler" >Handler</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:installHandler" ><A NAME="v%3AinstallHandler" ></A ></A ><B >installHandler</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="System-Posix-Signals.html#t%3AHandler" >Handler</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ><TD CLASS="rdoc" >other signals to block </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Signals.html#t%3AHandler" >Handler</A ></TD ><TD CLASS="rdoc" >old handler </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT >installHandler int handler iset</TT > calls <TT >sigaction</TT > to install an interrupt handler for signal <TT >int</TT >. If <TT >handler</TT > is <TT >Default</TT >, <TT >SIG_DFL</TT > is installed; if <TT >handler</TT > is <TT >Ignore</TT >, <TT >SIG_IGN</TT > is installed; if <TT >handler</TT > is <TT >Catch action</TT >, a handler is installed which will invoke <TT >action</TT > in a new thread when (or shortly after) the signal is received. If <TT >iset</TT > is <TT >Just s</TT >, then the <TT >sa_mask</TT > of the <TT >sigaction</TT > structure is set to <TT >s</TT >; otherwise it is cleared. The previously installed signal handler for <TT >int</TT > is returned </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="5" ><A NAME="5" >Signal sets </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:SignalSet" ><A NAME="t%3ASignalSet" ></A ></A ><B >SignalSet</B > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:emptySignalSet" ><A NAME="v%3AemptySignalSet" ></A ></A ><B >emptySignalSet</B > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:fullSignalSet" ><A NAME="v%3AfullSignalSet" ></A ></A ><B >fullSignalSet</B > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:addSignal" ><A NAME="v%3AaddSignal" ></A ></A ><B >addSignal</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:deleteSignal" ><A NAME="v%3AdeleteSignal" ></A ></A ><B >deleteSignal</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:inSignalSet" ><A NAME="v%3AinSignalSet" ></A ></A ><B >inSignalSet</B > :: <A HREF="System-Posix-Signals.html#t%3ASignal" >Signal</A > -> <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="6" ><A NAME="6" >The process signal mask </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getSignalMask" ><A NAME="v%3AgetSignalMask" ></A ></A ><B >getSignalMask</B > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >getSignalMask</TT > calls <TT >sigprocmask</TT > to determine the set of interrupts which are currently being blocked. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:setSignalMask" ><A NAME="v%3AsetSignalMask" ></A ></A ><B >setSignalMask</B > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >setSignalMask mask</TT > calls <TT >sigprocmask</TT > with <TT >SIG_SETMASK</TT > to block all interrupts in <TT >mask</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:blockSignals" ><A NAME="v%3AblockSignals" ></A ></A ><B >blockSignals</B > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >blockSignals mask</TT > calls <TT >sigprocmask</TT > with <TT >SIG_BLOCK</TT > to add all interrupts in <TT >mask</TT > to the set of blocked interrupts. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unblockSignals" ><A NAME="v%3AunblockSignals" ></A ></A ><B >unblockSignals</B > :: <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >unblockSignals mask</TT > calls <TT >sigprocmask</TT > with <TT >SIG_UNBLOCK</TT > to remove all interrupts in <TT >mask</TT > from the set of blocked interrupts. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="7" ><A NAME="7" >The alarm timer </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:scheduleAlarm" ><A NAME="v%3AscheduleAlarm" ></A ></A ><B >scheduleAlarm</B > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >scheduleAlarm i</TT > calls <TT >alarm</TT > to schedule a real time alarm at least <TT >i</TT > seconds in the future. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="8" ><A NAME="8" >Waiting for signals </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getPendingSignals" ><A NAME="v%3AgetPendingSignals" ></A ></A ><B >getPendingSignals</B > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >getPendingSignals</TT > calls <TT >sigpending</TT > to obtain the set of interrupts which have been received but are currently blocked. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:awaitSignal" ><A NAME="v%3AawaitSignal" ></A ></A ><B >awaitSignal</B > :: <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="System-Posix-Signals.html#t%3ASignalSet" >SignalSet</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >awaitSignal iset</TT > suspends execution until an interrupt is received. If <TT >iset</TT > is <TT >Just s</TT >, <TT >awaitSignal</TT > calls <TT >sigsuspend</TT >, installing <TT >s</TT > as the new signal mask before suspending execution; otherwise, it calls <TT >pause</TT >. <TT >awaitSignal</TT > returns on receipt of a signal. If you have installed any signal handlers with <TT >installHandler</TT >, it may be wise to call <TT >yield</TT > directly after <TT >awaitSignal</TT > to ensure that the signal handler runs as promptly as possible. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="9" ><A NAME="9" >The <TT >NOCLDSTOP</TT > flag </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:setStoppedChildFlag" ><A NAME="v%3AsetStoppedChildFlag" ></A ></A ><B >setStoppedChildFlag</B > :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >Tells the system whether or not to set the <TT >SA_NOCLDSTOP</TT > flag when installing new signal handlers. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:queryStoppedChildFlag" ><A NAME="v%3AqueryStoppedChildFlag" ></A ></A ><B >queryStoppedChildFlag</B > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >Queries the current state of the stopped child flag. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.4.2</TD ></TR ></TABLE ></BODY ></HTML >