Spec-Zone.ru › Haskell 9

GHC.IO.Handle.Lock

Безопасный Haskell None
Язык Haskell2010

data FileLockingNotSupported Источник

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

С версии: base-4.10.0.0

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

FileLockingNotSupported
Экземпляры
Подробности экземпляров
Exception FileLockingNotSupported Источник
Подробности экземпляра

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

Методы

toException :: FileLockingNotSupported -> SomeException Источник

fromException :: SomeException -> Maybe FileLockingNotSupported Источник

displayException :: FileLockingNotSupported -> String Источник

backtraceDesired :: FileLockingNotSupported -> Bool Источник

Show FileLockingNotSupported Источник

С версии: base-4.10.0.0

Подробности экземпляра

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

Методы

showsPrec :: Int -> FileLockingNotSupported -> ShowS Источник

show :: FileLockingNotSupported -> String Источник

showList :: [FileLockingNotSupported] -> ShowS Источник

data LockMode Источник

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

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

SharedLock
ExclusiveLock

hLock :: Handle -> LockMode -> IO () Источник

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

Следует учитывать следующее:

  1. Эта функция может заблокироваться во время вызова C. Если это произойдёт, для возможности прервать её асинхронными исключениями и/или продолжить работу других потоков НЕОБХОДИМО использовать многопоточную версию системы выполнения.
  2. В реализации используются различные механизмы блокировки в зависимости от того, какие из них поддерживает платформа:
  • LockFileEx используется в Windows
  • На платформах, поддерживающих эту возможность, используются F_OFD_SETLK и F_OFD_SETLKW fnctls.
  • В остальных случаях используется flock

поэтому все их оговорки также применимы и здесь.

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

С версии: base-4.10.0.0

hTryLock :: Handle -> LockMode -> IO Bool Источник

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

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

С версии: base-4.10.0.0

hUnlock :: Handle -> IO () Источник

Снимает блокировку, установленную с помощью 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.14.1/docs/libraries/base-4.22.0.0-66f8/GHC-IO-Handle-Lock.html

Spec-Zone.ru

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