pub fn call(
target: CapHandle,
reply_grant: CapHandle,
recv: CapHandle,
request: &Message,
) -> Result<Message, IpcError>Expand description
Synchronous CALL (syscall 41): send request to target carrying reply_grant as a one-shot
reply cap, then block on recv (the caller’s own endpoint, where the reply lands) until the peer
replies OR the peer’s endpoint dies. Returns the reply, Err(ReplyDead) if the peer died before
replying, Err(EndpointDead) if the peer was already dead when the request was sent, or another
IpcError on a failed send.
This waits on truth, not on time (Commandment VIII): a peer that dies mid-request wakes the
caller with ReplyDead (the reply-side twin of EndpointDead, §8.6) instead of hanging it - no
timer, no fixed yield count. The buffer is in/out: the request is read from it, and the kernel
writes the reply back into the same buffer.