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

Maintainer's Corner

Package maintainers

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, 0.1.2
Change log CHANGELOG.md
Dependencies base (>=4.12.0.0 && <4.21) [details]
License GPL-2.0-or-later AND BSD-3-Clause[multiple license files]
Author
Maintainer Oleg Grenrus <oleg.grenrus@iki.fi>
Category System, Concurrency
Source repo head: git clone https://github.com/haskellari/lukko/
Uploaded by phadej at 2024-06-05T12:42:08Z
Distributions Arch:0.1.1.3, Fedora:0.1.1.3, LTSHaskell:0.1.1.3, NixOS:0.1.1.3, Stackage:0.1.2, openSUSE:0.1.1.3
Reverse Dependencies 5 direct, 13 indirect [details]
Downloads 22124 total (287 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]