GHC.Internal.Event.TimeOut

ghc-internal-9.1001.0: Basic libraries

Copyright | (c) Tamar Christina 2018
License | BSD-style (see the file libraries/base/LICENSE)
Maintainer | libraries@haskell.org
Stability | stable
Portability | non-portable
Safe Haskell | None
Language | Haskell2010

GHC.Internal.Event.TimeOut

Description

Common Timer definitions shared between WinIO and RIO.

The API of this module is unstable and not meant to be consumed by the general public. If you absolutely must depend on it, make sure to use a tight upper bound, e.g., `base < 4.X` rather than `base < 5`, because the interface can change rapidly without much warning.

Synopsis

- type TimeoutQueue = PSQ TimeoutCallback
- type TimeoutCallback = IO ()
- type TimeoutEdit = TimeoutQueue -> TimeoutQueue
- newtype TimeoutKey = TK Unique

# Documentation

type TimeoutQueue = PSQ TimeoutCallback Source #

A priority search queue, with timeouts as priorities.

type TimeoutCallback = IO () Source #

Warning: since the `TimeoutCallback` is called from the I/O manager, it must not throw an exception or block for a long period of time. In particular, be wary of `throwTo` and `killThread`: if the target thread is making a foreign call, these functions will block until the call completes.

type TimeoutEdit = TimeoutQueue -> TimeoutQueue Source #

An edit to apply to a `TimeoutQueue`.

newtype TimeoutKey Source #

A timeout registration cookie.

Constructors

TK Unique |

#### Instances

Instances details

Eq TimeoutKey Source # |
Instance details Defined in GHC.Internal.Event.TimeOut Methods (==) :: TimeoutKey -> TimeoutKey -> Bool Source # (/=) :: TimeoutKey -> TimeoutKey -> Bool Source #
Ord TimeoutKey Source # |
Instance details Defined in GHC.Internal.Event.TimeOut Methods compare :: TimeoutKey -> TimeoutKey -> Ordering Source # (<) :: TimeoutKey -> TimeoutKey -> Bool Source # (<=) :: TimeoutKey -> TimeoutKey -> Bool Source # (>) :: TimeoutKey -> TimeoutKey -> Bool Source # (>=) :: TimeoutKey -> TimeoutKey -> Bool Source # max :: TimeoutKey -> TimeoutKey -> TimeoutKey Source # min :: TimeoutKey -> TimeoutKey -> TimeoutKey Source #