[−][src]Module sunrise_kernel::ipc::port
IPC Port
A Port represents an endpoint which can be connected to, in order to
establish a Session. It is split in two different part: ServerPort and
ClientPort. The ClientPort has a connect
operation, while a ServerPort has
an accept
operation.
Those work as a rendez-vous, meaning both operations wait for each-other:
The connect
operation blocks until a ServerPort calls accept
. Similarly,
the accept
operation waits until a ClientPort connect
s. Once the two
operation meet, a Session
is created. The accept
operation will return a
ServerSession
, while the connect
operation returns a ClientSession
.
Additionally, a ServerPort implements the Waitable trait, allowing it to be
used with the event::wait
function. This will wait until the associated
ClientPort had its connect operation called.
let (server, client) = Port::new(); let client_sess = client.connect(); // In a separate thread let server_sess = server.accept();
Structs
ClientPort | The client side of a Port. |
IncomingConnection | Represents a connection request from the creator thread. |
Port | An endpoint which can be connected to. |
ServerPort | The server side of a Port. |
Functions
new | Create a new Port pair. Those ports are linked to each-other: The server will receive connections from the client. A port may only have max_sessions sessions active at a given time. |