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 | |
| 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 | |
Указывает режим, в котором файл должен быть заблокирован.
Конструкторы
| 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