ruby_sys/
thread.rs

1use types::{CallbackPtr, c_void, Value};
2
3#[cfg(unix)]
4use types::RawFd;
5
6extern "C" {
7    pub fn rb_thread_call_without_gvl(func: CallbackPtr,
8                                      args: *const c_void,
9                                      unblock_func: CallbackPtr,
10                                      unblock_args: *const c_void)
11                                      -> *mut c_void;
12
13    pub fn rb_thread_call_without_gvl2(func: CallbackPtr,
14                                       args: *const c_void,
15                                       unblock_func: CallbackPtr,
16                                       unblock_args: *const c_void)
17                                       -> *mut c_void;
18
19    pub fn rb_thread_call_with_gvl(func: CallbackPtr, args: *const c_void) -> *mut c_void;
20
21    pub fn rb_thread_create(function: extern "C" fn(*mut c_void) -> Value,
22                            data: *mut c_void)
23                            -> Value;
24
25    #[cfg(unix)]
26    pub fn rb_thread_wait_fd(fd: RawFd);
27}