-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | High-resolution clock functions: monotonic, realtime, cputime.
--
@package clock
@version 0.4.2.0
-- | High-resolution, realtime clock and timer functions for Posix
module System.Clock
-- | Clock types. A clock may be system-wide (that is, visible to all
-- processes) or per-process (measuring time that is meaningful only
-- within a process). All implementations shall support CLOCK_REALTIME.
data Clock
-- | The identifier for the system-wide monotonic clock, which is defined
-- as a clock measuring real time, whose value cannot be set via
-- clock_settime and which cannot have negative clock jumps. The
-- maximum possible clock jump shall be implementation defined. For this
-- clock, the value returned by getTime represents the amount of
-- time (in seconds and nanoseconds) since an unspecified point in the
-- past (for example, system start-up time, or the Epoch). This point
-- does not change after system start-up time. Note that the absolute
-- value of the monotonic clock is meaningless (because its origin is
-- arbitrary), and thus there is no need to set it. Furthermore, realtime
-- applications can rely on the fact that the value of this clock is
-- never set.
Monotonic :: Clock
-- | The identifier of the system-wide clock measuring real time. For this
-- clock, the value returned by getTime represents the amount of time (in
-- seconds and nanoseconds) since the Epoch.
Realtime :: Clock
-- | The identifier of the CPU-time clock associated with the calling
-- process. For this clock, the value returned by getTime represents the
-- amount of execution time of the current process.
ProcessCPUTime :: Clock
-- | The identifier of the CPU-time clock associated with the calling OS
-- thread. For this clock, the value returned by getTime represents the
-- amount of execution time of the current OS thread.
ThreadCPUTime :: Clock
-- | TimeSpec structure
data TimeSpec
TimeSpec :: {-# UNPACK #-} !Int64 -> {-# UNPACK #-} !Int64 -> TimeSpec
-- | seconds
sec :: TimeSpec -> {-# UNPACK #-} !Int64
-- | nanoseconds
nsec :: TimeSpec -> {-# UNPACK #-} !Int64
-- | The getTime function shall return the current value for the
-- specified clock.
getTime :: Clock -> IO TimeSpec
-- | The getRes function shall return the resolution of any clock.
-- Clock resolutions are implementation-defined and cannot be set by a
-- process.
getRes :: Clock -> IO TimeSpec
-- | Compute the absolute difference.
diffTimeSpec :: TimeSpec -> TimeSpec -> TimeSpec
instance Typeable Clock
instance Typeable TimeSpec
instance Eq Clock
instance Enum Clock
instance Generic Clock
instance Read Clock
instance Show Clock
instance Eq TimeSpec
instance Generic TimeSpec
instance Read TimeSpec
instance Show TimeSpec
instance Datatype D1Clock
instance Constructor C1_0Clock
instance Constructor C1_1Clock
instance Constructor C1_2Clock
instance Constructor C1_3Clock
instance Datatype D1TimeSpec
instance Constructor C1_0TimeSpec
instance Selector S1_0_0TimeSpec
instance Selector S1_0_1TimeSpec
instance Ord TimeSpec
instance Num TimeSpec
instance Storable TimeSpec