on bump-version help sign in
reflex/test/rootCleanup.hs
25 lines 604 B history raw
1import Control.Concurrent
2import Control.Monad
3import Data.IORef
4import Reflex
5import Reflex.Host.Class
6import System.Exit
7import System.Mem
9main :: IO ()
10main = do
11 numSubscriptions <- newIORef 0
12 replicateM_ 1000 $ do
13 runSpiderHost $ do
14 e <- newEventWithTrigger $ \_ -> do
15 modifyIORef' numSubscriptions succ
16 return $ modifyIORef' numSubscriptions pred
17 _ <- hold () e
18 return ()
19 replicateM_ 100 $ do
20 performMajorGC
21 threadDelay 1
22 n <- readIORef numSubscriptions
23 if n == 0
24 then putStrLn "Succeeded"
25 else putStrLn "Failed" >> exitFailure