GHC.IO.Handle.Lock
| Safe Haskell | None |
|---|---|
| Язык | Haskell2010 |
data FileLockingNotSupported Source
Исключение, выбрасываемое hLock на платформах, отличных от Windows, которые не поддерживают flock.
С момента: base-4.10.0.0
Конструкторы
| FileLockingNotSupported |
Примеры
| Show FileLockingNotSupported | С момента: base-4.10.0.0 |
Определено в GHC.IO.Handle.Lock.Common МетодыshowsPrec :: Int -> FileLockingNotSupported -> ShowS Source show :: FileLockingNotSupported -> String Source showList :: [FileLockingNotSupported] -> ShowS Source | |
| Исключение FileLockingNotSupported | |
Определено в GHC.IO.Handle.Lock.Common | |
Указывает режим, в котором файл должен быть заблокирован.
Конструкторы
| SharedLock | |
| ExclusiveLock |
hLock :: Дескриптор файла -> LockMode -> IO () Source
Если Handle ссылается на дескриптор файла, пытается заблокировать содержимое соответствующего файла в заданном режиме. Если файл уже заблокирован в несовместимом режиме, эта функция блокируется, пока блокировка не будет установлена. Блокировка автоматически снимается при закрытии Handle.
Важно учитывать:
1) Эта функция может заблокироваться внутри вызова C. Если это произойдёт, чтобы можно было прервать её асинхронными исключениями и/или для того, чтобы другие потоки могли продолжить работу, НУЖНО использовать многопоточную версию системы выполнения.
2) Реализация использует LockFileEx на Windows и flock в противном случае, поэтому все их замечания также относятся к данному случаю.
3) На платформах, отличных от Windows, которые не поддерживают flock (например, Solaris), эта функция вызывает FileLockingNotImplemented. Мы намеренно не предоставляем блокировку на основе fcntl из-за её некорректной семантики.
С момента: base-4.10.0.0
hTryLock :: Дескриптор файла -> LockMode -> IO Булево Source
Неблокирующая версия hLock.
С момента: base-4.10.0.0
hUnlock :: Дескриптор файла -> 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/8.10.2/docs/html/libraries/base-4.14.1.0/GHC-IO-Handle-Lock.html