wasmer_wasix/syscalls/wasix/thread_signal.rs
1use super::*;
2use crate::syscalls::*;
3
4/// ### `thread_signal()`
5/// Send a signal to a particular thread in the current process.
6/// Note: This is similar to `signal` in POSIX.
7/// Inputs:
8/// - `Signal`
9/// Signal to be raised for this process
10#[instrument(level = "trace", skip_all, fields(%tid, ?sig), ret)]
11pub fn thread_signal(
12 mut ctx: FunctionEnvMut<'_, WasiEnv>,
13 tid: Tid,
14 sig: Signal,
15) -> Result<Errno, WasiError> {
16 {
17 let tid: WasiThreadId = tid.into();
18 ctx.data().process.signal_thread(&tid, sig);
19 }
20
21 let env = ctx.data();
22
23 WasiEnv::do_pending_operations(&mut ctx)?;
24
25 Ok(Errno::Success)
26}