packages feed

stm-stats-0.1.0.0: Demo.hs

import Control.Concurrent
import Control.Concurrent.STM
import Control.Monad

import Control.Concurrent.STM.Stats

main = do
    var <- trackSTM $ newTVar 0
    forkIO $ forM_ [1..23] $ \i -> do
        threadDelay (100*1000)
        trackNamedSTM "writer" $ writeTVar var i
    putStrLn "Starting reader..."
    trackNamedSTM "reader" $ do
        i <- readTVar var
        when (i < 23) retry
    putStrLn "Reader finished."
    dumpSTMStats