GHC.Событие
| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Описание
Этот модуль обеспечивает масштабируемое уведомление о событиях для файловых дескрипторов и тайм-аутов.
Этот модуль следует считать внутренним для GHC.
- ---------------------------------------------------------------------------
Типы
data EventManager Source
Состояние менеджера событий.
data TimerManager Source
Состояние менеджера событий.
Создание
getSystemEventManager :: IO (Maybe EventManager) Source
Получить системный менеджер событий для возможности, на которой работает вызывающий поток.
Эта функция всегда возвращает Just менеджер событий текущего потока при использовании многопоточной RTS и Nothing в противном случае.
new :: IO EventManager Source
Создать новый менеджер событий.
getSystemTimerManager :: IO TimerManager Source
Регистрация интереса к событиям ввода-вывода
Событие ввода-вывода.
Экземпляры
Данные доступны для чтения.
Файловый дескриптор готов принять запись.
type IOCallback = FdKey -> Event -> IO () Source
Обратный вызов, вызываемый при событиях ввода-вывода.
Регистрационный куки файла-дескриптора.
data Срок жизни Источник
Срок жизни регистрации события.
С момента: base-4.8.1.0
Примеры
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 вызывается менеджером I/O, он не должен генерировать исключение или блокироваться на длительный период времени. В частности, будьте осторожны с throwTo и killThread: если целевой поток выполняет внешний вызов, эти функции будут заблокированы до завершения вызова.
data TimeoutKey Исходный код
Куки для регистрации таймаута.
Примеры использования
| Eq TimeoutKey Исходный код | |
Определено в GHC.Internal.Event.TimeOut Методыравно :: TimeoutKey -> TimeoutKey -> Булево Исходный код не равно :: TimeoutKey -> TimeoutKey -> Булево Исходный код | |
| Ord TimeoutKey Исходный код | |
Определено в GHC.Internal.Event.TimeOut Методысравнить :: TimeoutKey -> TimeoutKey -> Порядок Исходный код < :: TimeoutKey -> TimeoutKey -> Булево Исходный код <= :: TimeoutKey -> TimeoutKey -> Булево Исходный код > :: TimeoutKey -> TimeoutKey -> Булево Исходный код >= :: TimeoutKey -> TimeoutKey -> Булево Исходный код макс :: TimeoutKey -> TimeoutKey -> TimeoutKey Исходный код мин :: TimeoutKey -> TimeoutKey -> TimeoutKey Исходный код | |
регистрацияТаймаута :: ДиспетчерТаймеров -> Целое -> ОбработчикТаймаута -> IO TimeoutKey Исходный код
Регистрирует таймаут на заданное число микросекунд. Возвращаемый TimeoutKey может быть использован для последующей отмены или обновления таймаута. Таймаут автоматически отменяется после истечения заданного времени.
Будьте внимательны, чтобы не превысить maxBound :: Int, что на 32-битных машинах составляет всего 2147483647 мкс, меньше чем 36 минут.
обновитьТаймаут :: ДиспетчерТаймеров -> TimeoutKey -> Целое -> IO () Исходный код
Обновляет активный таймаут, чтобы он сработал через заданное число микросекунд.
Будьте внимательны, чтобы не превысить maxBound :: Int, что на 32-битных машинах составляет всего 2147483647 мкс, меньше чем 36 минут.
отменитьТаймаут :: ДиспетчерТаймеров -> 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.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-Event.html