summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-regress/rts/return_mem_to_os.hs
blob: 242ccc3bb0c8071ddb015b97803f86632cf30b46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

import Control.Concurrent
import System.IO
import System.Mem

main :: IO ()
main = do hSetBuffering stdout LineBuffering
          mapM_ doIter [1..3]

doIter :: Int -> IO ()
doIter n = do putStrLn ("Iteration " ++ show n)
              let xs = [n .. 1000000 + n]
              putStrLn ("Last: " ++ show (last xs))
              putStrLn "GC 1 start"
              performGC
              putStrLn "GC 1 done"
              putStrLn ("Head: " ++ show (head xs))
              putStrLn "GC 2 start"
              performGC
              putStrLn "GC 2 done"