[project @ 1998-08-17 12:23:00 by simonm]
authorsimonm <unknown>
Mon, 17 Aug 1998 12:23:00 +0000 (12:23 +0000)
committersimonm <unknown>
Mon, 17 Aug 1998 12:23:00 +0000 (12:23 +0000)
Fix test to wait for all threads to run before ending.

ghc/tests/concurrent/should_run/conc004.hs
ghc/tests/concurrent/should_run/conc004.stdout

index 6a1ee0f..2580636 100644 (file)
@@ -6,8 +6,14 @@ module Main where
 import Concurrent
 
 main :: IO ()
-main = spawner forkIO 1000000
+main = do
+   mvar <- newEmptyMVar
 
-spawner :: (IO () -> IO ()) -> Int -> IO ()
-spawner c 0 = print "done"
-spawner c n = do { c (spawner c (n-1)); return ()}
+   let 
+       spawner :: (IO () -> IO ()) -> Int -> IO ()
+       spawner c 0 = putMVar mvar ()
+       spawner c n = do { c (spawner c (n-1)); return ()}
+
+   spawner forkIO 1000000
+   takeMVar mvar
+   putStr "done"