GHC.Event
| Безопасный Haskell | Безопасный |
|---|---|
| Язык | Haskell2010 |
Описание
Этот модуль предоставляет масштабируемое уведомление о событиях для файловых дескрипторов и тайм-аутов.
Этот модуль следует считать внутренним модулем GHC.
- ---------------------------------------------------------------------------
Типы
data EventManager Исходный код
Состояние диспетчера событий.
data TimerManager Исходный код
Состояние диспетчера событий.
Создание
getSystemEventManager :: IO (Maybe EventManager) Исходный код
Получает системный диспетчер событий для capability, в которой выполняется вызывающий поток.
Эта функция всегда возвращает Just диспетчер событий текущего потока при использовании многопоточной RTS и Nothing в противном случае.
new :: IO EventManager Исходный код
Создаёт новый диспетчер событий.
getSystemTimerManager :: IO TimerManager Исходный код
Регистрация интереса к событиям ввода-вывода
data Event Исходный код
Событие ввода-вывода.
Экземпляры
| Monoid Event Исходный код | Начиная с: base-4.4.0.0 |
Определён в GHC.Internal.Event.Internal.Types | |
| Semigroup Event Исходный код | Начиная с: base-4.10.0.0 |
Определён в GHC.Internal.Event.Internal.Types Методы(<>) :: Event -> Event -> Event Исходный код sconcat :: NonEmpty Event -> Event Исходный код stimes :: Integral b => b -> Event -> Event Исходный код | |
| Eq Event Исходный код | Начиная с: base-4.4.0.0 |
Определён в GHC.Internal.Event.Internal.Types | |
| Show Event Исходный код | Начиная с: base-4.4.0.0 |
Определён в GHC.Internal.Event.Internal.Types МетодыshowsPrec :: Int -> Event -> ShowS Исходный код show :: Event -> String Исходный код showList :: [Event] -> ShowS Исходный код | |
Данные доступны для чтения.
evtWrite :: Event Исходный код
Файловый дескриптор готов к записи.
type IOCallback = FdKey -> Event -> IO () Исходный код
Обратный вызов, вызываемый при событиях ввода-вывода.
data FdKey Исходный код
Идентификатор регистрации файлового дескриптора.
Экземпляры
| Eq FdKey Исходный код | Начиная с: base-4.4.0.0 |
Определён в GHC.Internal.Event.Manager | |
| Show FdKey Исходный код | Начиная с: base-4.4.0.0 |
Определён в GHC.Internal.Event.Manager МетодыshowsPrec :: Int -> FdKey -> ShowS Исходный код show :: FdKey -> String Исходный код showList :: [FdKey] -> ShowS Исходный код | |
data Lifetime Исходный код
Срок действия регистрации события.
Начиная с: base-4.8.1.0
Конструкторы
| OneShot | регистрация будет активна только для одного события |
| MultiShot | регистрация будет срабатывать несколько раз |
Экземпляры
registerFd :: EventManager -> IOCallback -> Fd -> Event -> Lifetime -> IO FdKey Исходный код
registerFd mgr cb fd evs lt регистрирует интерес к событиям evs для файлового дескриптора fd на срок lt. cb вызывается для каждого произошедшего события. Возвращает идентификатор, который можно передать в unregisterFd.
unregisterFd :: EventManager -> FdKey -> IO () Исходный код
Отменяет ранее созданную регистрацию файлового дескриптора.
unregisterFd_ :: EventManager -> FdKey -> IO Bool Исходный код
Отменяет ранее созданную регистрацию файлового дескриптора, не пробуждая поток диспетчера событий. Возвращаемое значение указывает, следует ли пробудить диспетчер событий.
closeFd :: EventManager -> (Fd -> IO ()) -> Fd -> IO () Исходный код
Закрывает файловый дескриптор безопасным при гонках способом. Функция может заблокироваться, хотя и на очень короткое время, поэтому её можно прервать асинхронными исключениями.
Регистрация интереса к событиям тайм-аута
type TimeoutCallback = IO () Исходный код
Предупреждение: поскольку TimeoutCallback вызывается диспетчером ввода-вывода, он не должен выбрасывать исключение или надолго блокироваться. В частности, следует проявлять осторожность с throwTo и killThread: если целевой поток выполняет foreign-вызов, эти функции будут блокироваться до его завершения.
data TimeoutKey Исходный код
Идентификатор регистрации тайм-аута.
Экземпляры
| Eq TimeoutKey Исходный код | |
Определён в GHC.Internal.Event.TimeOut Методы(==) :: TimeoutKey -> TimeoutKey -> Bool Исходный код (/=) :: TimeoutKey -> TimeoutKey -> Bool Исходный код | |
| Ord TimeoutKey Исходный код | |
Определён в GHC.Internal.Event.TimeOut Методыcompare :: TimeoutKey -> TimeoutKey -> Ordering Исходный код (<) :: TimeoutKey -> TimeoutKey -> Bool Исходный код (<=) :: TimeoutKey -> TimeoutKey -> Bool Исходный код (>) :: TimeoutKey -> TimeoutKey -> Bool Исходный код (>=) :: TimeoutKey -> TimeoutKey -> Bool Исходный код max :: TimeoutKey -> TimeoutKey -> TimeoutKey Исходный код min :: TimeoutKey -> TimeoutKey -> TimeoutKey Исходный код | |
registerTimeout :: TimerManager -> Int -> TimeoutCallback -> IO TimeoutKey Исходный код
Зарегистрировать тайм-аут на указанное количество микросекунд. Возвращённый TimeoutKey можно использовать позднее, чтобы отменить регистрацию тайм-аута или обновить его. Регистрация тайм-аута автоматически отменяется по истечении указанного времени.
Будьте осторожны и не превышайте maxBound :: Int, которое на 32-разрядных машинах составляет всего 2147483647 μs, то есть менее 36 минут.
updateTimeout :: TimerManager -> TimeoutKey -> Int -> IO () Исходный код
Обновить активный тайм-аут, чтобы он сработал через указанное количество микросекунд.
Будьте осторожны и не превышайте maxBound :: Int, которое на 32-разрядных машинах составляет всего 2147483647 μs, то есть менее 36 минут.
unregisterTimeout :: TimerManager -> TimeoutKey -> IO () Исходный код
Отменить регистрацию активного тайм-аута.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/GHC-Event.html