Spec-Zone.ru › Haskell 9

GHC.IO.SubSystem

Авторские права (c) The University of Glasgow 2017
Лицензия см. libraries/base/LICENSE
Сопровождающий libraries@haskell.org
Стабильность внутренний
Переносимость непереносимый
Безопасный Haskell Безопасный
Язык Haskell2010

Описание

Интерфейс управления IoSubSystem. Эти методы можно использовать, чтобы устранить неоднозначность между двумя операциями.

API этого модуля нестабилен и не предназначен для использования широкой публикой. Если вам крайне необходимо от него зависеть, обязательно укажите строгую верхнюю границу версии, например base < 4.X вместо base < 5, поскольку интерфейс может быстро изменяться без особого предупреждения.

withIoSubSystem :: (IoSubSystem -> IO a) -> IO a Исходный код

withIoSubSystem' :: (IoSubSystem -> a) -> a Исходный код

whenIoSubSystem :: IoSubSystem -> IO () -> IO () Исходный код

ioSubSystem :: IoSubSystem Исходный код

Используемая IoSubSystem.

Это необходимо для оптимизации поддержки различных менеджеров ввода-вывода в Windows. GHC поддерживает как новый менеджер WinIO, так и старый MIO (многопоточный), а также устаревший win32-legacy (однопоточный). Менеджер WinIO использует собственные дескрипторы Win32 HANDLE, тогда как два других используют файловые дескрипторы в стиле POSIX (через уровни преобразования).

Во многих местах кода базовой библиотеки ввода-вывода для корректной работы или повышения производительности в Windows необходимо выбирать разные пути выполнения в зависимости от используемого стиля менеджера ввода-вывода. Менеджер ввода-вывода задаётся при запуске RTS (значение по умолчанию можно переопределить с помощью флагов RTS). В Windows это значение получается чтением глобальной переменной, задаваемой менеджером IOManager из RTS при запуске.

В системах, отличных от Windows, это значение всегда равно IoPOSIX.

data IoSubSystem Исходный код

Подсистема ввода-вывода, используемая в программе.

Начиная с: base-4.9.0.0

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

IoPOSIX

Использовать подсистему ввода-вывода POSIX

IoNative

Использовать платформенную подсистему. В ОС Unix она совпадает с IoPOSIX, а в Windows означает использование собственных API Windows для ввода-вывода, включая IOCP и RIO.

Экземпляры
Подробности экземпляров
Eq IoSubSystem Исходный код
Подробности экземпляра

Определён в GHC.Internal.IO.SubSystem

Методы

(==) :: IoSubSystem -> IoSubSystem -> Bool Исходный код

(/=) :: IoSubSystem -> IoSubSystem -> Bool Исходный код

Enum IoSubSystem Исходный код
Подробности экземпляра

Определён в GHC.Internal.IO.SubSystem

Методы

succ :: IoSubSystem -> IoSubSystem Исходный код

pred :: IoSubSystem -> IoSubSystem Исходный код

toEnum :: Int -> IoSubSystem Исходный код

fromEnum :: IoSubSystem -> Int Исходный код

enumFrom :: IoSubSystem -> [IoSubSystem] Исходный код

enumFromThen :: IoSubSystem -> IoSubSystem -> [IoSubSystem] Исходный код

enumFromTo :: IoSubSystem -> IoSubSystem -> [IoSubSystem] Исходный код

enumFromThenTo :: IoSubSystem -> IoSubSystem -> IoSubSystem -> [IoSubSystem] Исходный код

Show IoSubSystem Исходный код
Подробности экземпляра

Определён в GHC.Internal.IO.SubSystem

Методы

showsPrec :: Int -> IoSubSystem -> ShowS Исходный код

show :: IoSubSystem -> String Исходный код

showList :: [IoSubSystem] -> ShowS Исходный код

conditional :: a -> a -> a Исходный код

Условно выполняет действие в зависимости от настроенной подсистемы ввода-вывода. В системах POSIX всегда выполняет первое действие. В Windows выполняет второе действие, если активен WINIO, в противном случае — первое.

(<!>) :: a -> a -> a infixl 7 Исходный код

Инфиксная версия conditional. posix ! windows == conditional posix windows

isWindowsNativeIO :: Bool Исходный код

© 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-IO-SubSystem.html

Spec-Zone.ru

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