polysemy-time-0.4.0.0: lib/Polysemy/Time/Sleep.hs
{-# options_haddock prune #-}
-- |Helpers for sleeping, Internal
module Polysemy.Time.Sleep where
import Control.Concurrent (threadDelay)
import Polysemy.Time.Data.TimeUnit (MicroSeconds (MicroSeconds), TimeUnit, convert)
uSleep ::
Member (Embed IO) r =>
MicroSeconds ->
Sem r ()
uSleep (MicroSeconds 0) =
unit
uSleep (MicroSeconds us) =
embed (threadDelay (fromIntegral us))
tSleep ::
Member (Embed IO) r =>
TimeUnit t =>
t ->
Sem r ()
tSleep =
uSleep . convert