From be8e1ab512717aa3de6fe8848af2ab8dddaf8a2e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 29 Jul 2024 15:14:12 -0400 Subject: [PATCH] more fixes to windows build for content retention files Will probably build successfully now. Still untested. --- Annex/Content.hs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Annex/Content.hs b/Annex/Content.hs index c94aebf041..0b1454a861 100644 --- a/Annex/Content.hs +++ b/Annex/Content.hs @@ -164,31 +164,33 @@ lockContentShared key mduration a = do , Nothing ) #else - lock retention v = - let (locker, postunlock) = winLocker lockShared v + lock retention obj lckf = + let (locker, postunlock) = winLocker lockShared' obj lckf in ( locker >>= \case Just lck -> do writeretention retention return (Just lck) Nothing -> return Nothing - , \lckfile -> do - maybe noop (\a -> a lckfile) postunlock - lockdropretention v retention + , Just $ \lckfile -> do + maybe noop (\pu -> pu lckfile) postunlock + lockdropretention obj lckf retention ) - lockdropretention _ Nothing = noop - lockdropretention v retention@(Just _) = do + lockdropretention _ _ Nothing = noop + lockdropretention obj lckf retention = do -- In order to dropretention, have to -- take an exclusive lock. let (exlocker, expostunlock) = - winLocker lockExclusive v + winLocker lockExclusive' obj lckf exlocker >>= \case Nothing -> noop Just lck -> do dropretention retention liftIO $ dropLock lck - fromMaybe noop expostunlock + case (expostunlock, lckf) of + (Just pu, Just f) -> pu f + _ -> noop #endif writeretention Nothing = noop @@ -238,8 +240,10 @@ lockContentForRemoval key fallback a = lockContentUsing lock key fallback $ (tryLockExclusive Nothing contentfile) in (lck, Nothing) #else - lock = checkRetentionTimestamp key - (winLocker lockExclusive) + lock obj lckf = + let (exlocker, expostunlock) = + winLocker lockExclusive' obj lckf + in (checkRetentionTimestamp key exlocker, expostunlock) #endif {- Passed the object content file, and maybe a separate lock file to use, @@ -362,7 +366,7 @@ lockContentUsing contentlocker key fallback a = withContentLockFile key $ \mlock case mlockfile of Nothing -> noop -- never reached Just lockfile -> do - maybe noop (\a -> a lockfile) postunlock + maybe noop (\pu -> pu lockfile) postunlock cleanuplockfile lockfile #endif