ribosome-0.3.0.0: lib/Ribosome/System/Time.hs
module Ribosome.System.Time where
import Control.Concurrent (threadDelay)
import Control.Monad.IO.Class (MonadIO, liftIO)
import Data.Time.Clock.POSIX (getPOSIXTime)
import GHC.Float (word2Double)
epochSeconds :: MonadIO m => m Int
epochSeconds = liftIO $ fmap round getPOSIXTime
usleep :: MonadIO m => Double -> m ()
usleep =
liftIO . threadDelay . round
sleep :: MonadIO m => Double -> m ()
sleep seconds =
usleep $ seconds * 1e6
sleepW :: MonadIO m => Word -> m ()
sleepW = sleep . word2Double