base-4.3.1.0: Basic libraries

System.Event

Types

data EventManager Source

The event manager state.

Creation

new :: IO EventManager Source

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 :: Event Source

Data is available to be read.

evtWrite :: Event Source

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 FdKey Source

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 Bool Source

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.

data TimeoutKey Source

Instances

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

Register a timeout in the given number of microseconds.

updateTimeout :: EventManager -> TimeoutKey -> Int -> IO () Source

unregisterTimeout :: EventManager -> TimeoutKey -> IO () Source

AltStyle によって変換されたページ (->オリジナル) /