lukko: File locking

[ concurrency, library, system ] [ Propose Tags ]

This package provides access to platform dependent file locking APIs:

There are alternative file locking packages:

  • GHC.IO.Handle.Lock in base >= 4.10 is good enough for most use cases. However, uses only Handles so these locks cannot be used for intra-process locking. (You should use e.g. MVar in 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.

Flags

Manual Flags

NameDescriptionDefault
ofd-locking

Enable open file descriptor locking. Available on Linux (kernel 3.15, released Jun 8, 2014).

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1, 0.1.1, 0.1.1.1, 0.1.1.2, 0.1.1.3
Change log CHANGELOG.md
Dependencies base (>=4.5 && <4.17) [details]
License GPL-2.0-or-later AND BSD-3-Clause[multiple license files]
Author
Maintainer Oleg Grenrus <oleg.grenrus@iki.fi>
Revised Revision 2 made by phadej at 2022-01-02T18:07:24Z
Category System, Concurrency
Source repo head: git clone https://github.com/haskellari/lukko/
Uploaded by phadej at 2021-01-06T16:16:38Z
Distributions Arch:0.1.1.3, Fedora:0.1.1.3, LTSHaskell:0.1.1.3, NixOS:0.1.1.3, Stackage:0.1.1.3, openSUSE:0.1.1.3
Downloads 17725 total (209 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-01-06 [all 1 reports]