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}