From cb952fa89a089695337a32f3a13dffbde4bffe85 Mon Sep 17 00:00:00 2001 From: Neil Mitchell Date: Sat, 1 Feb 2020 07:59:28 +0000 Subject: [PATCH] Change the cleanup test and make all releases uninterruptible --- src/General/Cleanup.hs | 2 +- src/Test/Cleanup.hs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/General/Cleanup.hs b/src/General/Cleanup.hs index bdb43a234..c1100ebf4 100755 --- a/src/General/Cleanup.hs +++ b/src/General/Cleanup.hs @@ -51,7 +51,7 @@ unprotect :: ReleaseKey -> IO () unprotect (ReleaseKey ref i) = atomicModifyIORef' ref $ \s -> (s{items = Map.delete i $ items s}, ()) release :: ReleaseKey -> IO () -release (ReleaseKey ref i) = mask_ $ do +release (ReleaseKey ref i) = uninterruptibleMask_ $ do undo <- atomicModifyIORef' ref $ \s -> (s{items = Map.delete i $ items s}, Map.lookup i $ items s) fromMaybe (return ()) undo diff --git a/src/Test/Cleanup.hs b/src/Test/Cleanup.hs index 6a7936d3d..c69a9ad2b 100644 --- a/src/Test/Cleanup.hs +++ b/src/Test/Cleanup.hs @@ -39,7 +39,7 @@ main = testSimple $ do do -- cleanup actions are masked https://github.com/snoyberg/conduit/issues/144 let checkMasked name = do ms <- getMaskingState - unless (ms == MaskedInterruptible) $ + unless (ms == MaskedUninterruptible) $ error $ show (name, ms) withCleanup $ \cleanup -> do register cleanup (checkMasked "release") >>= release