blob: 823d8b7a03907036aca12b7ea92fc1762777f26c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
{-# LANGUAGE CPP, ForeignFunctionInterface #-}
module Test where
import Control.Concurrent
import Control.Monad
import Foreign.C
-- See also conc059_c.c
--
-- This test fires off some threads that will return after the RTS has
-- shut down. This should not crash or confuse the RTS.
f :: Int -> IO ()
f x = do
print x
replicateM_ 10 $ forkIO $ do millisleep (fromIntegral x); putStrLn "hello"
return ()
foreign export ccall "f" f :: Int -> IO ()
foreign import ccall safe "millisleep" millisleep :: CInt -> IO ()
|