pub fn send_signal(resource: u32, signal_type: Signal) -> StatusExpand description
Send signal to another job identified by its handle
§description
This syscall emit a signal that target another job identified by its handle.
A signal is not data, and as such there is no data copy between tasks. Signals are asynchronous events. This syscall is not a blocking syscall, the target has not received the signal when returning from this syscall.
The signal list is compile-time fixed and can’t be increased at runtime.
The signal definitions and proper associated usage is listed in Signal.
As this syscall is fully asynchronous, there is no way to be informed that the target has read the signal.
This syscall returns Status::Invalid If the target job handle
is not found.
This syscall returns Status::Invalid if the signal identifier do not exist.
If a task emit a signal while the target hasn’t read the previous one from
the same source, the syscall returns Status::Busy.
This syscall returns Status::Ok once the signal is delivered into the target
input queue.
Note: The signal input queue is per-peer with a depth of 1, meaning that there is no impact between tasks if multiple tasks send signals to the same target.
§examples
send_signal(TargetTaskh, Signal::Pipe)?continue_here;