/src/Flock.hsc
http://github.com/Eelis/geordi · Unknown · 16 lines · 11 code · 5 blank · 0 comment · 0 complexity · 336a034f76c6af85ee67663637f0b9ac MD5 · raw file
- {-# LANGUAGE UnicodeSyntax, ForeignFunctionInterface #-}
- module Flock (exclusive) where
- import System.Posix.Types
- import Foreign.C
- import Prelude (IO, ($))
- #include <sys/file.h>
- foreign import ccall unsafe "flock" c_flock :: CInt ? CInt ? IO CInt
- flock :: CInt ? CInt ? IO ()
- flock fd op = throwErrnoIfMinus1_ "flock" $ c_flock fd op
- exclusive :: Fd ? IO ()
- exclusive (Fd fd) = flock fd (#const LOCK_EX)