INotify.removeWatch can crash

Unsure why, possibly if the file has been replaced by another file.
This commit is contained in:
Joey Hess 2021-08-13 15:35:18 -04:00
parent 7503b8448b
commit ff2dc5eb18
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -193,7 +193,7 @@ tailVerify iv f finished =
(Just <$> readTMVar hv)
`orElse`
((const Nothing) <$> readTMVar finished)
INotify.removeWatch wd
void $ tryNonAsync $ INotify.removeWatch wd
return v
inotifycreate i cont = INotify.addWatch i evs (P.takeDirectory f) $ \case
@ -231,8 +231,9 @@ tailVerify iv f finished =
wd <- INotify.addWatch i [INotify.Modify] f $ \_event ->
atomically $ void $ tryPutTMVar modified ()
r <- follow h modified
INotify.removeWatch wd
void $ tryNonAsync $ INotify.removeWatch wd
return r
-- File never showed up, but we've been told it's done being
-- written to.
go' _ Nothing = do