summaryrefslogtreecommitdiff
path: root/libraries/base/GHC/Clock.hsc
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/base/GHC/Clock.hsc')
-rw-r--r--libraries/base/GHC/Clock.hsc25
1 files changed, 25 insertions, 0 deletions
diff --git a/libraries/base/GHC/Clock.hsc b/libraries/base/GHC/Clock.hsc
new file mode 100644
index 0000000000..6339dc0a52
--- /dev/null
+++ b/libraries/base/GHC/Clock.hsc
@@ -0,0 +1,25 @@
+{-# LANGUAGE Trustworthy #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+
+module GHC.Clock
+ ( getMonotonicTime
+ , getMonotonicTimeNSec
+ ) where
+
+import GHC.Base
+import GHC.Real
+import Data.Word
+
+-- | Return monotonic time in seconds, since some unspecified starting point
+--
+-- @since 4.11.0.0
+getMonotonicTime :: IO Double
+getMonotonicTime = do w <- getMonotonicTimeNSec
+ return (fromIntegral w / 1000000000)
+
+-- | Return monotonic time in nanoseconds, since some unspecified starting point
+--
+-- @since 4.11.0.0
+foreign import ccall unsafe "getMonotonicNSec"
+ getMonotonicTimeNSec :: IO Word64
+