libnode_sys/napi/napi_4/
napi_ref_threadsafe_function.rs

1use std::sync::OnceLock;
2
3use super::super::*;
4
5const SYMBOL: &[u8] = "napi_ref_threadsafe_function".as_bytes();
6type SIGNATURE = fn(env: napi_env, func: napi_threadsafe_function) -> napi_status;
7static CACHE: OnceLock<crate::load::Symbol<SIGNATURE>> = OnceLock::new();
8
9pub unsafe fn napi_ref_threadsafe_function(
10  env: napi_env,
11  func: napi_threadsafe_function,
12) -> napi_status {
13  unsafe { CACHE.get_or_init(|| crate::load::get_sym(SYMBOL).unwrap())(env, func) }
14}