on master help sign in
Move locking mechanism out of File module
1569e78Evan Czaplicki
builder/src/File.hs−11
@@ -1,7 +1,6 @@
1module File
1module File
2 ( Time
2 ( Time
3 , getTime
3 , getTime
4− , withLock
5 , writeBinary
4 , writeBinary
6 , readBinary
5 , readBinary
7 , writeUtf8
6 , writeUtf8
@@ -28,7 +27,6 @@ import qualified Data.Time.Clock.POSIX as Time
28import qualified Foreign.ForeignPtr as FPtr
27import qualified Foreign.ForeignPtr as FPtr
29import GHC.IO.Exception (IOException, IOErrorType(InvalidArgument))
28import GHC.IO.Exception (IOException, IOErrorType(InvalidArgument))
30import qualified System.Directory as Dir
29import qualified System.Directory as Dir
31−import qualified System.FileLock as Lock
32import qualified System.FilePath as FP
30import qualified System.FilePath as FP
33import System.FilePath ((</>))
31import System.FilePath ((</>))
34import qualified System.IO as IO
32import qualified System.IO as IO
@@ -57,15 +55,6 @@ instance Binary.Binary Time where
57
55
58
56
59
57
60−-- LOCK
61−
62−
63−withLock :: FilePath -> IO a -> IO a
64−withLock path work =
65− Lock.withFileLock path Lock.Exclusive (\_ -> work)
66−
67−
68−
69-- BINARY
58-- BINARY
70
59
71
60