@hackage lukko0.1.2
File locking
Categories
License
GPL-2.0-or-later AND BSD-3-Clause
Maintainer
Oleg Grenrus <oleg.grenrus@iki.fi>
Links
Versions
Installation
Tested Compilers
Dependencies (1)
Dependents (6)
@hackage/hackage-security, @hackage/cabal-install-parsers, @hackage/cabal-install, @hackage/hackport, @hackage/cachix, @hackage/ghc-tags-plugin
Package Flags
ofd-locking
(on by default)
Enable open file descriptor locking. Available on Linux (kernel 3.15, released Jun 8, 2014).
This package provides access to platform dependent file locking APIs:
Open file descriptor locking on Linux (
Lukko.OFD)BSD-style
flock(2)locks on UNIX platforms (Lukko.FLock)Windows locking via LockFileEx (
Lukko.Windows)No-op locking, which throws exceptions (
Lukko.NoOp)Lukkomodule exports the best option for the target platform with uniform API.
There are alternative file locking packages:
GHC.IO.Handle.Lockinbase >= 4.10is good enough for most use cases. However, uses onlyHandles so these locks cannot be used for intra-process locking. (You should use e.g.MVarin addition).filelock doesn't support OFD locking.
Lukko means lock in Finnish.
Submodules Lukko.OFD, Lukko.Windows etc are available based on following conditions.
if os(windows) cpp-options: -DHAS_WINDOWS_LOCK elif (os(linux) && flag(ofd-locking)) cpp-options: -DHAS_OFD_LOCKING cpp-options: -DHAS_FLOCK elif !(os(solaris) || os(aix)) cpp-options: -DHAS_FLOCK
Lukko.FLock is available on not (Windows or Solaris or AIX).
Lukko.NoOp is always available.