Spec-Zone.ru › Haskell 9

GHC.IO.Handle.Lock

Safe Haskell None
Язык Haskell2010

data FileLockingNotSupported Source

Исключение, выбрасываемое hLock на платформах, отличных от Windows, которые не поддерживают flock.

С момента: base-4.10.0.0

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

FileLockingNotSupported
Примеры реализации
Подробности примеров реализации
Исключение FileLockingNotSupported Source
Подробности реализации

Определено в GHC.Internal.IO.Handle.Lock.Common

Методы

toException :: FileLockingNotSupported -> SomeException Source

fromException :: SomeException -> Возможно FileLockingNotSupported Source

displayException :: FileLockingNotSupported -> Строка Source

backtraceDesired :: FileLockingNotSupported -> Булево Source

Show FileLockingNotSupported Source

С момента: base-4.10.0.0

Подробности реализации

Определено в GHC.Internal.IO.Handle.Lock.Common

Методы

showsPrec :: Целое число -> FileLockingNotSupported -> ShowS Source

show :: FileLockingNotSupported -> Строка Source

showList :: [FileLockingNotSupported] -> ShowS Source

data LockMode Source

Указывает режим, в котором файл должен быть заблокирован.

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

SharedLock
ExclusiveLock

hLock :: Handle -> LockMode -> IO () Source

Если Handle ссылается на дескриптор файла, пытается заблокировать содержимое соответствующего файла в соответствующем режиме. Если файл уже заблокирован в несовместимом режиме, эта функция блокируется до тех пор, пока блокировка не будет установлена. Блокировка автоматически снимается при закрытии Handle.

Важно учитывать:

1) Эта функция может заблокироваться внутри вызова C. Если это произойдет, чтобы иметь возможность прервать ее асинхронными исключениями и/или для того, чтобы другие потоки могли продолжить работу, вы ОБЯЗАТЕЛЬНО должны использовать потоковую версию системы выполнения.

2) Реализация использует LockFileEx на Windows и flock в противном случае, поэтому все их оговорки также применяются здесь.

3) На платформах, отличных от Windows, которые не поддерживают flock (например, Solaris), эта функция выбрасывает FileLockingNotImplemented. Мы намеренно не предоставляем блокировку на основе fcntl из-за ее нарушенной семантики.

С момента: base-4.10.0.0

hTryLock :: Handle -> LockMode -> IO Булево Source

Неблокирующая версия hLock.

Возвращает True, если захват блокировки был успешным, и False в противном случае.

С момента: base-4.10.0.0

hUnlock :: Handle -> IO () Source

Освобождение блокировки, взятой с помощью hLock или hTryLock.

С момента: base-4.11.0.0

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

Spec-Zone.ru

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