Barrelfish
Functions
waitset_chan_priv.h File Reference

Libbarrelfish-private waitset interface to channel implementations. More...

Functions

errval_t waitset_chan_trigger_disabled (struct waitset_chanstate *chan, dispatcher_handle_t handle)
 Trigger an event callback on a channel. More...
 
errval_t waitset_chan_trigger_closure_disabled (struct waitset *ws, struct waitset_chanstate *chan, struct event_closure closure, dispatcher_handle_t handle)
 Trigger a specific event callback on an unregistered channel. More...
 
errval_t waitset_chan_deregister_disabled (struct waitset_chanstate *chan, dispatcher_handle_t handle)
 Cancel a previous callback registration. More...
 
errval_t waitset_chan_register_disabled (struct waitset *ws, struct waitset_chanstate *chan, struct event_closure closure)
 Register a closure to be called when a channel is triggered. More...
 
errval_t waitset_chan_register_polled_disabled (struct waitset *ws, struct waitset_chanstate *chan, struct event_closure closure, dispatcher_handle_t handle)
 Register a closure on a channel, and mark the channel as polled. More...
 

Detailed Description

Libbarrelfish-private waitset interface to channel implementations.

Function Documentation

errval_t waitset_chan_deregister_disabled ( struct waitset_chanstate chan,
dispatcher_handle_t  handle 
)

Cancel a previous callback registration.

Remove the registration for a callback on the given channel. This function must only be called when disabled.

Parameters
chanWaitset's per-channel state
errval_t waitset_chan_register_disabled ( struct waitset ws,
struct waitset_chanstate chan,
struct event_closure  closure 
)

Register a closure to be called when a channel is triggered.

In the Future, call the closure on a thread associated with the waitset when the channel is triggered. Only one closure may be registered per channel state at any one time. This function must only be called when disabled.

Parameters
wsWaitset
chanWaitset's per-channel state
closureEvent handler
errval_t waitset_chan_register_polled_disabled ( struct waitset ws,
struct waitset_chanstate chan,
struct event_closure  closure,
dispatcher_handle_t  handle 
)

Register a closure on a channel, and mark the channel as polled.

In the Future, call the closure on a thread associated with the waitset when the channel is triggered. Only one closure may be registered per channel state at any one time. Additionally, mark the channel as polled. This function must only be called when disabled.

Parameters
wsWaitset
chanWaitset's per-channel state
closureEvent handler
dispCurrent dispatcher pointer
errval_t waitset_chan_trigger_closure_disabled ( struct waitset ws,
struct waitset_chanstate chan,
struct event_closure  closure,
dispatcher_handle_t  handle 
)

Trigger a specific event callback on an unregistered channel.

This function is equivalent to waitset_chan_register_disabled() immediately followed by waitset_chan_trigger_disabled(), but avoids unneccessary queue manipulation. This function must only be called when disabled.

Parameters
wsWaitset
chanWaitset's per-channel state
closureEvent handler
dispCurrent dispatcher pointer
errval_t waitset_chan_trigger_disabled ( struct waitset_chanstate chan,
dispatcher_handle_t  handle 
)

Trigger an event callback on a channel.

Marks the given channel as having a pending event, causing some future call to get_next_event() to return the registered closure. This function must only be called when disabled.

Parameters
chanWaitset's per-channel state
dispCurrent dispatcher pointer