From 0be6791d6c7c3d7338783707a070da07d07f2bc8 Mon Sep 17 00:00:00 2001 From: dragon-zhang Date: Thu, 3 Apr 2025 21:29:39 +0800 Subject: [PATCH] enhance stability --- hook/src/syscall/unix.rs | 5 ++++- hook/src/syscall/windows.rs | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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),*)