thread-utils-context-0.1.0.0: test/Spec.hs
{-# LANGUAGE NumericUnderscores #-}
import System.Mem
import Control.Concurrent
import Control.Concurrent.MVar
import Control.Concurrent.Thread.Storage
import Control.Monad
main :: IO ()
main = do
mv <- newEmptyMVar
tsm <- newThreadStorageMap
replicateM_ 20 $ do
forkIO $ do
myThreadId >>= print
attach tsm ()
readMVar mv
threadDelay 2_000_000
print =<< storedItems tsm
putMVar mv ()
threadDelay 2_000_000
performGC
print =<< storedItems tsm