System.Posix.Signals
| Copyright | (c) The University of Glasgow 2002 |
|---|---|
| License | BSD-style (see the file libraries/base/LICENSE) |
| Maintainer | libraries@haskell.org |
| Stability | временный |
| Portability | не переносимый (требует POSIX) |
| Safe Haskell | Надёжный |
| Language | Haskell2010 |
Содержание
Описание
Поддержка сигналов POSIX
Тип Signal
Конкретные сигналы
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
userDefinedSignal1 :: Сигнал Источник
userDefinedSignal2 :: Сигнал Источник
pollableEvent :: Сигнал Источник
profilingTimerExpired :: Сигнал Источник
badSystemCall :: Сигнал Источник
breakpointTrap :: Сигнал Источник
urgentDataAvailable :: Сигнал Источник
virtualTimerExpired :: Сигнал Источник
cpuTimeLimitExceeded :: Сигнал Источник
fileSizeLimitExceeded :: Сигнал Источник
Отправка сигналов
raiseSignal :: Сигнал -> IO () Источник
raiseSignal int вызывает kill для сигнализации текущему процессу с сигналом прерывания int.
signalProcess :: Сигнал -> ProcessID -> IO () Источник
signalProcess int pid вызывает kill для сигнализации процессу pid с сигналом прерывания int.
signalProcessGroup :: Сигнал -> ProcessGroupID -> IO () Источник
signalProcessGroup int pgid вызывает kill для сигнализации всем процессам в группе pgid с сигналом прерывания int.
Обработка сигналов
data Обработчик Источник
Действия, которые необходимо выполнить при получении сигнала.
Конструкторы
| По умолчанию | |
| Игнорировать | |
| Перехватить (IO ()) | |
| Перехватить один раз (IO ()) | |
| Перехватить с информацией (SignalInfo -> IO ()) | С версии: 2.7.0.0 |
| Перехватить с информацией один раз (SignalInfo -> IO ()) | С версии: 2.7.0.0 |
data Информация о сигнале Источник
Информация о полученном сигнале (полученная от siginfo_t).
С версии: 2.7.0.0
Конструкторы
| Информация о сигнале | |
Поля | |
data Конкретная информация о сигнале Источник
Информация, специфичная для определенного типа сигнала (полученная от siginfo_t).
С версии: 2.7.0.0
Аргументы
| :: Сигнал | |
| -> Обработчик | |
| -> Может быть Набор сигналов | другие блокируемые сигналы |
| -> IO Обработчик | старый обработчик |
installHandler int handler iset вызывает sigaction для установки обработчика прерывания для сигнала int. Если handler является Default, устанавливается SIG_DFL; если handler является Ignore, устанавливается SIG_IGN; если handler является Catch action, устанавливается обработчик, который вызовет action в новом потоке при (или вскоре после) получении сигнала. Если iset является Just s, то sa_mask структуры sigaction устанавливается в s; в противном случае очищается. Возвращается ранее установленный обработчик сигнала для int
Наборы сигналов
data Набор сигналов Источник
emptySignalSet :: Набор сигналов Источник
fullSignalSet :: Набор сигналов Источник
зарезервированныеСигналы :: Набор сигналов Источник
Множество сигналов, зарезервированных для использования реализацией. В GHC это обычно sigVTALRM или sigALRM.
добавитьСигнал :: Сигнал -> Набор сигналов -> Набор сигналов infixr 9 Источник
удалитьСигнал :: Сигнал -> Набор сигналов -> Набор сигналов infixr 9 Источник
вНабореСигналов :: Сигнал -> Набор сигналов -> Булево Источник
Маска сигналов процесса
получитьМаскуСигналов :: IO Набор сигналов Источник
getSignalMask вызывает sigprocmask для определения набора прерываний, которые в данный момент заблокированы.
установитьМаскуСигналов :: Набор сигналов -> IO () Источник
setSignalMask mask вызывает sigprocmask с SIG_SETMASK для блокировки всех прерываний в mask.
заблокироватьСигналы :: Набор сигналов -> IO () Источник
blockSignals mask вызывает sigprocmask с SIG_BLOCK для добавления всех прерываний в mask в набор заблокированных прерываний.
разблокироватьСигналы :: Набор сигналов -> IO () Источник
unblockSignals mask вызывает sigprocmask с SIG_UNBLOCK для удаления всех прерываний в mask из набора заблокированных прерываний.
Таймер сигнализации
запланироватьСигнализацию :: Целое число -> IO Целое число Источник
scheduleAlarm i вызывает alarm для планирования таймера реального времени по крайней мере i секунд в будущем.
Ожидание сигналов
получитьОжидаемыеСигналы :: IO Набор сигналов Источник
getPendingSignals вызывает sigpending для получения набора прерываний, которые были получены, но в настоящее время заблокированы.
ожидатьСигнал :: Может быть Набор сигналов -> IO () Источник
awaitSignal iset приостанавливает выполнение до тех пор, пока не будет получено прерывание. Если iset является Just s, awaitSignal вызывает sigsuspend, устанавливая s в качестве новой маски сигналов перед приостановкой выполнения; в противном случае она вызывает sigsuspend с текущей маской сигналов. Обратите внимание, что сигнал планировщика RTS (либо virtualTimerExpired или realTimeAlarm) может привести к преждевременному завершению этого вызова. Возможно, потребуется заблокировать этот сигнал перед вызовом awaitSignal с blockSignals reservedSignals.
awaitSignal возвращается, когда сигнал был получен и обработан обработчиком сигнала или если сигнал не смог быть перехвачен. Если вы установили какие-либо обработчики сигналов с installHandler, рекомендуется вызвать yield непосредственно после awaitSignal для обеспечения того, чтобы обработчик сигнала запускался как можно быстрее.
Флаг NOCLDSTOP
установитьФлагОстановленногоРебенка :: Булево -> IO Булево Источник
Указывает системе, нужно ли устанавливать флаг SA_NOCLDSTOP при установке новых обработчиков сигналов.
запросФлагаОстановленногоРебенка :: IO Булево Источник
Запрашивает текущее состояние флага остановленного ребенка.
© 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