summaryrefslogtreecommitdiff
path: root/Remote/Helper
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-08-20 18:56:25 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-08-20 18:58:14 -0400
commit263c4140583aeddd2c1e52a40d5fcc411f3d18d1 (patch)
treece22004cbe16525a6c649f84f3a4d216fb688236 /Remote/Helper
parent00d6acb7268239162a9ebd9386f7ca1271c3cc7d (diff)
more lock file refactoring
Also fixes a test suite failures introduced in recent commits, where inAnnexSafe failed in indirect mode, since it tried to open the lock file ReadWrite. This is why the new checkLocked opens it ReadOnly. This commit was sponsored by Chad Horohoe.
Diffstat (limited to 'Remote/Helper')
-rw-r--r--Remote/Helper/Hooks.hs10
1 files changed, 2 insertions, 8 deletions
diff --git a/Remote/Helper/Hooks.hs b/Remote/Helper/Hooks.hs
index 96f73cce3..529c35d3f 100644
--- a/Remote/Helper/Hooks.hs
+++ b/Remote/Helper/Hooks.hs
@@ -83,18 +83,12 @@ runHooks r starthook stophook a = do
unlockFile lck
#ifndef mingw32_HOST_OS
mode <- annexFileMode
- fd <- liftIO $ noUmask mode $ createLockFile (Just mode) lck
- v <- liftIO $ tryIO $
- setLock fd (WriteLock, AbsoluteSeek, 0, 0)
- case v of
- Left _ -> noop
- Right _ -> run stophook
- liftIO $ closeFd fd
+ v <- liftIO $ noUmask mode $ tryLockExclusive (Just mode) lck
#else
v <- liftIO $ lockExclusive lck
+#endif
case v of
Nothing -> noop
Just lockhandle -> do
run stophook
liftIO $ dropLock lockhandle
-#endif