avoid unncessary locking by checkLogFile

Like the comment says, this works without locking. It looks like I
originally copied another function and forgot to remove the locking.

Sponsored-by: Dartmouth College's DANDI project
This commit is contained in:
Joey Hess 2022-09-23 14:01:43 -04:00
parent ed8afacc39
commit b17e328175
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 3 additions and 4 deletions

View file

@ -396,8 +396,7 @@ logMove srcuuid destuuid deststartedwithcopy key a = go =<< setup
go logf
-- Only need to check log when there is a copy.
| deststartedwithcopy = do
lck <- fromRepo gitAnnexMoveLock
wasnocopy <- checkLogFile (fromRawFilePath logf) lck
wasnocopy <- checkLogFile (fromRawFilePath logf)
(== logline)
if wasnocopy
then go' logf False

View file

@ -88,8 +88,8 @@ modifyLogFile f lck modf = withExclusiveLock lck $ do
-- action is concurrently modifying the file. It does not lock the file,
-- for speed, but instead relies on the fact that a log file usually
-- ends in a newline.
checkLogFile :: FilePath -> RawFilePath -> (L.ByteString -> Bool) -> Annex Bool
checkLogFile f lck matchf = withExclusiveLock lck $ bracket setup cleanup go
checkLogFile :: FilePath -> (L.ByteString -> Bool) -> Annex Bool
checkLogFile f matchf = bracket setup cleanup go
where
setup = liftIO $ tryWhenExists $ openFile f ReadMode
cleanup Nothing = noop