7f98a03cd2355af89f3f8cca4ed377650cc5eec6
[ghc.git] / libraries / base / GHC / Event / Clock.hsc
1 {-# LANGUAGE Trustworthy #-}
2 {-# LANGUAGE NoImplicitPrelude #-}
3
4 module GHC.Event.Clock
5     ( getMonotonicTime
6     , getMonotonicTimeNSec
7     ) where
8
9 import GHC.Base
10 import GHC.Real
11 import Data.Word
12
13 -- | Return monotonic time in seconds, since some unspecified starting point
14 getMonotonicTime :: IO Double
15 getMonotonicTime = do w <- getMonotonicTimeNSec
16                       return (fromIntegral w / 1000000000)
17
18 -- | Return monotonic time in nanoseconds, since some unspecified starting point
19 foreign import ccall unsafe "getMonotonicNSec"
20     getMonotonicTimeNSec :: IO Word64
21