diff --git a/intel-sgx/enclave-runner/src/usercalls/mod.rs b/intel-sgx/enclave-runner/src/usercalls/mod.rs index c30c9add..ff015066 100644 --- a/intel-sgx/enclave-runner/src/usercalls/mod.rs +++ b/intel-sgx/enclave-runner/src/usercalls/mod.rs @@ -995,8 +995,12 @@ impl EnclaveState { EnclaveState::syscall_loop(enclave.clone(), io_queue_receive, io_queue_send, work_sender); for handler in join_handlers { - #[cfg(unix)] + #[cfg(any(target_env = "musl", target_env = "ohos"))] + unsafe { libc::pthread_kill(handler.as_pthread_t() as *mut c_void, signal::SIGUSR1 as _); } + + #[cfg(target_env = "gnu")] unsafe { libc::pthread_kill(handler.as_pthread_t(), signal::SIGUSR1 as _); } + let _ = handler.join(); } return main_result;