diff --git a/thread-utils-context/src/Control/Concurrent/Thread/Storage.hs b/thread-utils-context/src/Control/Concurrent/Thread/Storage.hs index 8020593..70fae2c 100644 --- a/thread-utils-context/src/Control/Concurrent/Thread/Storage.hs +++ b/thread-utils-context/src/Control/Concurrent/Thread/Storage.hs @@ -98,7 +98,7 @@ atomicModifyStripe (ThreadStorageMap arr#) tid f = IO $ \s -> go s let (updatedIntMap, result) = f intMap in case casArray# arr# stripe# intMap updatedIntMap s1 of (# s2, outcome, old #) -> case outcome of - 0# -> (# s2, result #) + 0# -> updatedIntMap `seq` (# s2, result #) 1# -> go s2 _ -> error "Got impossible result in atomicModifyStripe"