base-4.3.1.0: Basic libraries

System.Event

Contents

Synopsis

Types

data EventManager Source

The event manager state.

Creation

new :: IO EventManagerSource

Create a new event manager.

Running

loop :: EventManager -> IO ()Source

Start handling events. This function loops until told to stop.

Note: This loop can only be run once per EventManager, as it closes all of its control resources when it finishes.

Stepwise running

step :: EventManager -> TimeoutQueue -> IO (Bool, TimeoutQueue)Source

shutdown :: EventManager -> IO ()Source

Asynchronously shuts down the event manager, if running.

Registering interest in I/O events

data Event Source

An I/O event.

Instances

evtRead :: EventSource

Data is available to be read.

evtWrite :: EventSource

The file descriptor is ready to accept a write.

type IOCallback = FdKey -> Event -> IO ()Source

Callback invoked on I/O events.

data FdKey Source

A file descriptor registration cookie.

Instances

registerFd :: EventManager -> IOCallback -> Fd -> Event -> IO FdKeySource

registerFd mgr cb fd evs registers interest in the events evs on the file descriptor fd. cb is called for each event that occurs. Returns a cookie that can be handed to unregisterFd.

registerFd_ :: EventManager -> IOCallback -> Fd -> Event -> IO (FdKey, Bool)Source

Register interest in the given events, without waking the event manager thread. The Bool return value indicates whether the event manager ought to be woken.

unregisterFd :: EventManager -> FdKey -> IO ()Source

Drop a previous file descriptor registration.

unregisterFd_ :: EventManager -> FdKey -> IO BoolSource

Drop a previous file descriptor registration, without waking the event manager thread. The return value indicates whether the event manager ought to be woken.

closeFd :: EventManager -> (Fd -> IO ()) -> Fd -> IO ()Source

Close a file descriptor in a race-safe way.

Registering interest in timeout events

type TimeoutCallback = IO ()Source

Callback invoked on timeout events.

registerTimeout :: EventManager -> Int -> TimeoutCallback -> IO TimeoutKeySource

Register a timeout in the given number of microseconds.