Expose monotonic time from GHC.Event.Clock
[ghc.git] / libraries / base / GHC / Clock.hsc
1 {-# LANGUAGE Trustworthy #-}
2 {-# LANGUAGE NoImplicitPrelude #-}
3
4 module GHC.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 --
15 -- @since 4.11.0.0
16 getMonotonicTime :: IO Double
17 getMonotonicTime = do w <- getMonotonicTimeNSec
18                       return (fromIntegral w / 1000000000)
19
20 -- | Return monotonic time in nanoseconds, since some unspecified starting point
21 --
22 -- @since 4.11.0.0
23 foreign import ccall unsafe "getMonotonicNSec"
24     getMonotonicTimeNSec :: IO Word64
25