Spec-Zone.ru › Haskell 7

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

Содержание

  • Тип Signal
  • Конкретные сигналы
  • Отправка сигналов
  • Обработка сигналов
  • Множества сигналов
  • Маска сигналов процесса
  • Таймер тревоги
  • Ожидание сигналов
  • Флаг NOCLDSTOP

Описание

Поддержка сигналов POSIX

Тип Signal

type Signal = CInt Source

Конкретные сигналы

nullSignal :: Signal Source

internalAbort :: Signal Source

sigABRT :: CInt Source

realTimeAlarm :: Signal Source

sigALRM :: CInt Source

busError :: Signal Source

sigBUS :: CInt Source

processStatusChanged :: Signal Source

sigCHLD :: CInt Source

continueProcess :: Signal Source

sigCONT :: CInt Source

floatingPointException :: Signal Source

sigFPE :: CInt Source

lostConnection :: Signal Source

sigHUP :: CInt Source

illegalInstruction :: Signal Source

sigILL :: CInt Source

keyboardSignal :: Signal Source

sigINT :: CInt Source

killProcess :: Signal Source

sigKILL :: CInt Source

openEndedPipe :: Signal Source

sigPIPE :: CInt Source

keyboardTermination :: Signal Source

sigQUIT :: CInt Source

segmentationViolation :: Signal Source

sigSEGV :: CInt Source

softwareStop :: Signal Source

sigSTOP :: CInt Source

softwareTermination :: Signal Source

sigTERM :: CInt Source

keyboardStop :: Signal Source

sigTSTP :: CInt Source

backgroundRead :: Signal Source

sigTTIN :: CInt Source

backgroundWrite :: Signal Source

sigTTOU :: CInt Source

userDefinedSignal1 :: Сигнал Источник

sigUSR1 :: CInt Источник

userDefinedSignal2 :: Сигнал Источник

sigUSR2 :: CInt Источник

pollableEvent :: Сигнал Источник

sigPOLL :: CInt Источник

profilingTimerExpired :: Сигнал Источник

sigPROF :: CInt Источник

badSystemCall :: Сигнал Источник

sigSYS :: CInt Источник

breakpointTrap :: Сигнал Источник

sigTRAP :: CInt Источник

urgentDataAvailable :: Сигнал Источник

sigURG :: CInt Источник

virtualTimerExpired :: Сигнал Источник

sigVTALRM :: CInt Источник

cpuTimeLimitExceeded :: Сигнал Источник

sigXCPU :: CInt Источник

fileSizeLimitExceeded :: Сигнал Источник

sigXFSZ :: CInt Источник

Отправка сигналов

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

Конструкторы

Информация о сигнале

Поля

сигнал :: Сигнал
ошибка :: Errno
конкретная информация :: SignalSpecificInfo

data Конкретная информация о сигнале Источник

Информация, специфичная для определенного типа сигнала (полученная от siginfo_t).

С версии: 2.7.0.0

Конструкторы

Нет конкретной информации о сигнале
Информация о дочернем процессе

Поля

идентификатор процесса :: ProcessID
идентификатор пользователя :: UserID
статус процесса :: ProcessStatus

установить обработчик Источник

Аргументы

:: Сигнал
-> Обработчик
-> Может быть Набор сигналов

другие блокируемые сигналы

-> 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API