Port ThreadDelay001 to the "time" library
authorReid Barton <rwbarton@gmail.com>
Wed, 2 Oct 2013 01:10:49 +0000 (21:10 -0400)
committerAustin Seipp <aseipp@pobox.com>
Sat, 5 Oct 2013 16:28:18 +0000 (11:28 -0500)
... as "old-time" isn't built when cross-compiling.

Issue #8395.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
tests/Concurrent/ThreadDelay001.hs

index 36aa152..3b0f806 100644 (file)
@@ -6,22 +6,19 @@ module Main (main) where
 
 import Control.Concurrent
 import Control.Monad
-import System.Time
+import Data.Time
 
 main :: IO ()
 main = mapM_ delay (0 : take 7 (iterate (*5) 100))
 
 delay :: Int -> IO ()
 delay n = do
-  tS <- getClockTime
+  tS <- getCurrentTime
   threadDelay n
-  tE <- getClockTime
+  tE <- getCurrentTime
 
   let req = fromIntegral n * 10 ^ (6 :: Int)
-      obs = case normalizeTimeDiff (diffClockTimes tE tS) of
-                TimeDiff 0 0 0 0 0 s ps -> 10 ^ (12 :: Int) * fromIntegral s + ps
-                td ->
-                    error ("Bad TimeDiff: " ++ show td)
+      obs = floor (diffUTCTime tE tS * 10 ^ (12 :: Int))
       diff = obs - req
       diff' :: Double
       diff' = fromIntegral diff /  10 ^ (12 :: Int)