On this page
GHC.IO.Handle.Lock
Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
data FileLockingNotSupported Source
Exception thrown by hLock
on non-Windows platforms that don't support flock
.
Since: base-4.10.0.0
Constructors
Instances
Exception FileLockingNotSupported Source | |
Defined in GHC.IO.Handle.Lock.Common |
|
Show FileLockingNotSupported Source | Since: base-4.10.0.0 |
Defined in GHC.IO.Handle.Lock.Common MethodsshowsPrec :: Int -> FileLockingNotSupported -> ShowS Source show :: FileLockingNotSupported -> String Source showList :: [FileLockingNotSupported] -> ShowS Source |
Indicates a mode in which a file should be locked.
Constructors
hLock :: Handle -> LockMode -> IO () Source
If a Handle
references a file descriptor, attempt to lock contents of the underlying file in appropriate mode. If the file is already locked in incompatible mode, this function blocks until the lock is established. The lock is automatically released upon closing a Handle
.
Things to be aware of:
1) This function may block inside a C call. If it does, in order to be able to interrupt it with asynchronous exceptions and/or for other threads to continue working, you MUST use threaded version of the runtime system.
2) The implementation uses LockFileEx
on Windows and flock
otherwise, hence all of their caveats also apply here.
3) On non-Windows platforms that don't support flock
(e.g. Solaris) this function throws FileLockingNotImplemented
. We deliberately choose to not provide fcntl based locking instead because of its broken semantics.
Since: base-4.10.0.0
hTryLock :: Handle -> LockMode -> IO Bool Source
Non-blocking version of hLock
.
Returns True
if taking the lock was successful and False
otherwise.
Since: base-4.10.0.0
hUnlock :: Handle -> IO () Source
Release a lock taken with hLock
or hTryLock
.
Since: 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.4.2/docs/libraries/base-4.17.0.0/GHC-IO-Handle-Lock.html