Expose monotonic time from GHC.Event.Clock
authorTom Sydney Kerckhove <syd.kerckhove@gmail.com>
Wed, 18 Oct 2017 20:24:46 +0000 (16:24 -0400)
committerBen Gamari <ben@smart-cactus.org>
Thu, 19 Oct 2017 20:40:09 +0000 (16:40 -0400)
This diff exposes the monotonic time api from GHC.Event.Clock.

This is necessary for future work on regression tests (#D4074) for
the timeout problems (8684, for example) in #D4041, #D4011, #D4012

Test Plan: Still builds ...

Reviewers: nh2, bgamari, austin, hvr

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D4079

libraries/base/GHC/Clock.hsc [moved from libraries/base/GHC/Event/Clock.hsc with 90% similarity]
libraries/base/GHC/Event/TimerManager.hs
libraries/base/base.cabal

similarity index 90%
rename from libraries/base/GHC/Event/Clock.hsc
rename to libraries/base/GHC/Clock.hsc
index 7f98a03..6339dc0 100644 (file)
@@ -1,7 +1,7 @@
 {-# LANGUAGE Trustworthy #-}
 {-# LANGUAGE NoImplicitPrelude #-}
 
-module GHC.Event.Clock
+module GHC.Clock
     ( getMonotonicTime
     , getMonotonicTimeNSec
     ) where
@@ -11,11 +11,15 @@ 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
 
index f3dbb21..b7e7615 100644 (file)
@@ -43,11 +43,11 @@ import Data.Foldable (sequence_)
 import Data.IORef (IORef, atomicModifyIORef', mkWeakIORef, newIORef, readIORef,
                    writeIORef)
 import GHC.Base
+import GHC.Clock (getMonotonicTimeNSec)
 import GHC.Conc.Signal (runHandlers)
 import GHC.Num (Num(..))
 import GHC.Real (fromIntegral)
 import GHC.Show (Show(..))
-import GHC.Event.Clock (getMonotonicTimeNSec)
 import GHC.Event.Control
 import GHC.Event.Internal (Backend, Event, evtRead, Timeout(..))
 import GHC.Event.Unique (Unique, UniqueSource, newSource, newUnique)
index 2b9d557..43c7882 100644 (file)
@@ -204,6 +204,7 @@ Library
         GHC.Base
         GHC.ByteOrder
         GHC.Char
+        GHC.Clock
         GHC.Conc
         GHC.Conc.IO
         GHC.Conc.Signal
@@ -369,7 +370,6 @@ Library
         other-modules:
             GHC.Event.Arr
             GHC.Event.Array
-            GHC.Event.Clock
             GHC.Event.Control
             GHC.Event.EPoll
             GHC.Event.IntTable