packet
packet_header
rust_task
state
private_methods for packet_header
entangle
packet
receiver_terminate
recv
select
- Waits on a set of endpointssend
sender_terminate
spawn_service
spawn_service_recv
swap_state_acq
swap_state_rel
uniquify
wait_many
- Returns when one of the packet headers reports data is available.pipes::rusti
pipes::rustrt
packet
type packet<T: send> = {header: packet_header, mut payload: option<T>,}
packet_header
type packet_header = {mut state: state, mut blocked_task: option<*rust_task>,}
rust_task
type rust_task = libc::c_void
state
empty
full
blocked
terminated
private_methods for packet_header
mark_blocked
fn mark_blocked(this: *rust_task) -> state
unblock
fn unblock()
entangle
fn entangle<T: send>() -> (send_packet<T>, recv_packet<T>)
packet
fn packet<T: send>() -> *packet<T>
receiver_terminate
fn receiver_terminate<T: send>(p: *packet<T>)
recv
fn recv<T: send>(-p: recv_packet<T>) -> option<T>
select
fn select<T: send>(+endpoints: ~[recv_packet<T>]) ->
(uint, option<T>, ~[recv_packet<T>])
Waits on a set of endpoints. Returns a message, its index, and a list of the remaining endpoints.
send
fn send<T: send>(-p: send_packet<T>, -payload: T)
sender_terminate
fn sender_terminate<T: send>(p: *packet<T>)
spawn_service
fn spawn_service<T: send>(init:
extern fn() -> (send_packet<T>, recv_packet<T>),
+service: fn~(+recv_packet<T>)) -> send_packet<T>
spawn_service_recv
fn spawn_service_recv<T: send>(init:
extern fn()
-> (recv_packet<T>, send_packet<T>),
+service: fn~(+send_packet<T>)) ->
recv_packet<T>
swap_state_acq
fn swap_state_acq(&dst: state, src: state) -> state
swap_state_rel
fn swap_state_rel(&dst: state, src: state) -> state
uniquify
unsafe fn uniquify<T>(x: *T) -> ~T
wait_many
fn wait_many(pkts: ~[&a .packet_header]) -> uint
Returns when one of the packet headers reports data is available.