call
| Number | 0x12 |
|---|---|
| Signature | (port, w1, w2, w3) -> r0–r3 reply |
| Group | messaging |
| Since | 1.0 |
| Blocking | true |
Atomic send-then-receive: deliver a message and block for the reply on the same port. This is the request/response fast path, cheaper than a separate send + recv.
Pitfalls
Deadlock is possible if the server is waiting for a message from the caller. Design your protocol to avoid circular waits, as zuzu by itself provides minimal deadlock detection to userspace.
Arguments
| Register | Name | Description |
|---|---|---|
r0 | port | Handle of the server port |
r1–r3 | w1–w3 | Request payload words |
Returns
r0–r3 = the reply words.
Errors
| Code | Condition |
|---|---|
ERR_BADHANDLE | Handle names no live port |
ERR_BADTYPE | Handle is not a port |
ERR_DEAD | The peer is gone |