base-4.3.0.0: Basic libraries

System.Event

Contents

Synopsis

Types

data EventManager

The event manager state.

Creation

new :: IO EventManager

Create a new event manager.

Running

loop :: EventManager -> IO ()

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)

shutdown :: EventManager -> IO ()

Asynchronously shuts down the event manager, if running.

Registering interest in I/O events

data Event

An I/O event.

Instances

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

Callback invoked on I/O events.

data FdKey

A file descriptor registration cookie.

Instances

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

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)

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 ()

Drop a previous file descriptor registration.

unregisterFd_ :: EventManager -> FdKey -> IO Bool

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

fdWasClosed :: EventManager -> Fd -> IO ()

Notify the event manager that a file descriptor has been closed.

Registering interest in timeout events

type TimeoutCallback = IO ()

Callback invoked on timeout events.

data TimeoutKey

Instances

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

Register a timeout in the given number of microseconds.