summaryrefslogtreecommitdiff
path: root/Utility/LockPool/LockHandle.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-11-12 16:35:15 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-11-12 16:35:15 -0400
commitd94a72a381baf0e251db48844d27755d5f2c8f14 (patch)
treebb12b4ac1036db0f79d09d234490180b66288db0 /Utility/LockPool/LockHandle.hs
parent0356f1b6e6d5905430e57eedf868095d13610b4c (diff)
refactor
Diffstat (limited to 'Utility/LockPool/LockHandle.hs')
-rw-r--r--Utility/LockPool/LockHandle.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/Utility/LockPool/LockHandle.hs b/Utility/LockPool/LockHandle.hs
index 1fa8e7ca7..ec36e6156 100644
--- a/Utility/LockPool/LockHandle.hs
+++ b/Utility/LockPool/LockHandle.hs
@@ -10,6 +10,7 @@
module Utility.LockPool.LockHandle where
import qualified Utility.LockPool.STM as P
+import Utility.LockPool.STM (LockFile)
import Control.Concurrent.STM
import Control.Exception
@@ -22,13 +23,18 @@ data LockHandle = LockHandle
data FileLockOps = FileLockOps
{ fDropLock :: IO ()
#ifndef mingw32_HOST_OS
- , fCheckSaneLock :: FilePath -> IO Bool
+ , fCheckSaneLock :: LockFile -> IO Bool
#endif
}
dropLock :: LockHandle -> IO ()
dropLock h = P.releaseLock (poolHandle h) (fDropLock (fileLockOps h))
+#ifndef mingw32_HOST_OS
+checkSaneLock :: LockFile -> LockHandle -> IO Bool
+checkSaneLock lockfile (LockHandle _ flo) = fCheckSaneLock flo lockfile
+#endif
+
-- Take a lock, by first updating the lock pool, and then taking the file
-- lock. If taking the file lock fails for any reason, take care to
-- release the lock in the lock pool.