on patch-with-move-monoid help sign in
reflex/test/rootCleanup.hs
25 lines 604 B history raw
1import Control.Monad
2import Control.Concurrent
3import Reflex
4import Reflex.Host.Class
5import System.Mem
6import Data.IORef
7import System.Exit
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