Copyright | (c) The University of Glasgow 2002 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | [email protected] |
Stability | provisional |
Portability | non-portable (requires POSIX) |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
POSIX signal support
internalAbort :: Signal Source
realTimeAlarm :: Signal Source
processStatusChanged :: Signal Source
continueProcess :: Signal Source
floatingPointException :: Signal Source
lostConnection :: Signal Source
illegalInstruction :: Signal Source
keyboardSignal :: Signal Source
openEndedPipe :: Signal Source
keyboardTermination :: Signal Source
segmentationViolation :: Signal Source
softwareTermination :: Signal Source
backgroundRead :: Signal Source
backgroundWrite :: Signal Source
userDefinedSignal1 :: Signal Source
userDefinedSignal2 :: Signal Source
pollableEvent :: Signal Source
profilingTimerExpired :: Signal Source
badSystemCall :: Signal Source
breakpointTrap :: Signal Source
urgentDataAvailable :: Signal Source
virtualTimerExpired :: Signal Source
cpuTimeLimitExceeded :: Signal Source
fileSizeLimitExceeded :: Signal Source
raiseSignal :: Signal -> IO () Source
raiseSignal int
calls kill
to signal the current process with interrupt signal int
.
signalProcess :: Signal -> ProcessID -> IO () Source
signalProcess int pid
calls kill
to signal process pid
with interrupt signal int
.
signalProcessGroup :: Signal -> ProcessGroupID -> IO () Source
signalProcessGroup int pgid
calls kill
to signal all processes in group pgid
with interrupt signal int
.
The actions to perform when a signal is received.
Default | |
Ignore | |
Catch (IO ()) | |
CatchOnce (IO ()) | |
CatchInfo (SignalInfo -> IO ()) | Since: 2.7.0.0 |
CatchInfoOnce (SignalInfo -> IO ()) | Since: 2.7.0.0 |
data SignalInfo Source
Information about a received signal (derived from siginfo_t
).
Since: 2.7.0.0
SignalInfo | |
Fields |
data SignalSpecificInfo Source
Information specific to a particular type of signal (derived from siginfo_t
).
Since: 2.7.0.0
NoSignalSpecificInfo | |
SigChldInfo | |
Fields |
installHandler int handler iset
calls sigaction
to install an interrupt handler for signal int
. If handler
is Default
, SIG_DFL
is installed; if handler
is Ignore
, SIG_IGN
is installed; if handler
is Catch action
, a handler is installed which will invoke action
in a new thread when (or shortly after) the signal is received. If iset
is Just s
, then the sa_mask
of the sigaction
structure is set to s
; otherwise it is cleared. The previously installed signal handler for int
is returned
emptySignalSet :: SignalSet Source
fullSignalSet :: SignalSet Source
reservedSignals :: SignalSet Source
A set of signals reserved for use by the implementation. In GHC, this will normally include either sigVTALRM
or sigALRM
.
addSignal :: Signal -> SignalSet -> SignalSet infixr 9 Source
deleteSignal :: Signal -> SignalSet -> SignalSet infixr 9 Source
inSignalSet :: Signal -> SignalSet -> Bool Source
getSignalMask :: IO SignalSet Source
getSignalMask
calls sigprocmask
to determine the set of interrupts which are currently being blocked.
setSignalMask :: SignalSet -> IO () Source
setSignalMask mask
calls sigprocmask
with SIG_SETMASK
to block all interrupts in mask
.
blockSignals :: SignalSet -> IO () Source
blockSignals mask
calls sigprocmask
with SIG_BLOCK
to add all interrupts in mask
to the set of blocked interrupts.
unblockSignals :: SignalSet -> IO () Source
unblockSignals mask
calls sigprocmask
with SIG_UNBLOCK
to remove all interrupts in mask
from the set of blocked interrupts.
scheduleAlarm :: Int -> IO Int Source
scheduleAlarm i
calls alarm
to schedule a real time alarm at least i
seconds in the future.
getPendingSignals :: IO SignalSet Source
getPendingSignals
calls sigpending
to obtain the set of interrupts which have been received but are currently blocked.
awaitSignal :: Maybe SignalSet -> IO () Source
awaitSignal iset
suspends execution until an interrupt is received. If iset
is Just s
, awaitSignal
calls sigsuspend
, installing s
as the new signal mask before suspending execution; otherwise, it calls sigsuspend
with current signal mask. Note that RTS scheduler signal (either virtualTimerExpired
or realTimeAlarm
) could cause premature termination of this call. It might be necessary to block that signal before invocation of awaitSignal
with blockSignals
reservedSignals
.
awaitSignal
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 installHandler
, it may be wise to call yield
directly after awaitSignal
to ensure that the signal handler runs as promptly as possible.
setStoppedChildFlag :: Bool -> IO Bool Source
Tells the system whether or not to set the SA_NOCLDSTOP
flag when installing new signal handlers.
queryStoppedChildFlag :: IO Bool Source
Queries the current state of the stopped child flag.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/unix-2.7.1.0/System-Posix-Signals.html