From 00f4521b205bf25c79f0fa7c9a6840941342bda4 Mon Sep 17 00:00:00 2001 From: Aapo Alasuutari Date: Tue, 28 Jun 2022 12:23:36 +0300 Subject: feat(ext/ffi): Thread safe callbacks (#14942) --- test_ffi/src/lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'test_ffi/src') diff --git a/test_ffi/src/lib.rs b/test_ffi/src/lib.rs index b4908d9cd..d6f29cbb8 100644 --- a/test_ffi/src/lib.rs +++ b/test_ffi/src/lib.rs @@ -211,6 +211,19 @@ pub extern "C" fn call_stored_function_2(arg: u8) { } } +#[no_mangle] +pub extern "C" fn call_stored_function_thread_safe() { + std::thread::spawn(move || { + std::thread::sleep(std::time::Duration::from_millis(1500)); + unsafe { + if STORED_FUNCTION.is_none() { + return; + } + STORED_FUNCTION.unwrap()(); + } + }); +} + // FFI performance helper functions #[no_mangle] pub extern "C" fn nop() {} -- cgit v1.2.3