-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | 64-bit timeouts of nanosecond precision
--
-- This package provides data types and functions for working with 64-bit
-- timeouts of nanosecond precision.
@package data-timeout
@version 0.2
module Data.Timeout
-- | Exception that is raised when an operation times out. Not used by the
-- package itself, it is here so that users don't need to roll their own
-- exception type every time.
data TimedOut
TimedOut :: TimedOut
-- | Timeout unit.
data TimeoutUnit
NanoSecond :: TimeoutUnit
MicroSecond :: TimeoutUnit
MilliSecond :: TimeoutUnit
Second :: TimeoutUnit
Minute :: TimeoutUnit
Hour :: TimeoutUnit
Day :: TimeoutUnit
Week :: TimeoutUnit
-- | Amount of nanoseconds in a timeout unit.
timeoutUnitNanos :: TimeoutUnit -> Word64
-- | Timeout in nanoseconds.
newtype Timeout
Timeout :: Word64 -> Timeout
-- | Convert the given number of timeout units to Timeout.
(#) :: Word64 -> TimeoutUnit -> Timeout
-- | Extract number of units (rounding up).
(#>) :: Timeout -> TimeoutUnit -> Word64
-- | Extract number of units (rounding down).
(#<) :: Timeout -> TimeoutUnit -> Word64
-- | Zero timeout. The event in question should occur immediately.
instantly :: Timeout
instance Typeable TimedOut
instance Typeable TimeoutUnit
instance Typeable Timeout
instance Eq TimedOut
instance Show TimedOut
instance Eq TimeoutUnit
instance Ord TimeoutUnit
instance Bounded TimeoutUnit
instance Ix TimeoutUnit
instance Enum TimeoutUnit
instance Eq Timeout
instance Ord Timeout
instance Bounded Timeout
instance Ix Timeout
instance Enum Timeout
instance Num Timeout
instance Real Timeout
instance Integral Timeout
instance Show Timeout
instance Exception TimedOut
module Control.Concurrent.Timeout
-- | A version of timeout that takes Timeout instead of
-- number of microseconds.
timeout :: MonadBase IO μ => Timeout -> IO α -> μ (Maybe α)
-- | A version of threadDelay that takes Timeout instead of
-- number of microseconds.
threadDelay :: MonadBase IO μ => Timeout -> μ ()
instance Typeable TimeoutException
instance Eq TimeoutException
instance Exception TimeoutException
instance Show TimeoutException