diff --git a/hook/src/syscall/unix.rs b/hook/src/syscall/unix.rs index c633953e..aabd517b 100644 --- a/hook/src/syscall/unix.rs +++ b/hook/src/syscall/unix.rs @@ -23,7 +23,10 @@ macro_rules! impl_hook { std::mem::transmute(ptr) }); let fn_ptr = once_cell::sync::Lazy::force(&$field_name); - if $crate::hook() { + if $crate::hook() + || open_coroutine_core::scheduler::SchedulableCoroutine::current().is_some() + || cfg!(feature = "ci") + { return open_coroutine_core::syscall::$syscall(Some(fn_ptr), $($arg, )*); } (fn_ptr)($($arg),*) diff --git a/hook/src/syscall/windows.rs b/hook/src/syscall/windows.rs index 03264347..504034a8 100644 --- a/hook/src/syscall/windows.rs +++ b/hook/src/syscall/windows.rs @@ -36,7 +36,10 @@ macro_rules! impl_hook { open_coroutine_core::common::constants::SyscallName::$syscall ) }); - if $crate::hook() { + if $crate::hook() + || open_coroutine_core::scheduler::SchedulableCoroutine::current().is_some() + || cfg!(feature = "ci") + { return open_coroutine_core::syscall::$syscall(Some(fn_ptr), $($arg),*); } (fn_ptr)($($arg),*)