diff --git a/interfaces/innerkits/unwinder/src/unwind_local/thread_context.cpp b/interfaces/innerkits/unwinder/src/unwind_local/thread_context.cpp index 7895fa4f5e6f7ea608fef6cb5470f80a304190bd..b41bd3770aa6591e2f5cc1f1037eeb2502bf6d74 100644 --- a/interfaces/innerkits/unwinder/src/unwind_local/thread_context.cpp +++ b/interfaces/innerkits/unwinder/src/unwind_local/thread_context.cpp @@ -50,6 +50,9 @@ namespace { std::mutex g_localMutex; std::map> g_contextMap {}; constexpr std::chrono::seconds TIME_OUT = std::chrono::seconds(1); +#ifndef __aarch64__ +constexpr std::chrono::seconds TIME_OUT_IN_COPY_CONTEXT = std::chrono::seconds(3); +#endif void CreateContext(std::shared_ptr& threadContext) { @@ -175,7 +178,7 @@ NO_SANITIZE void CopyContextAndWaitTimeout(int sig, siginfo_t *si, void *context ctxPtr->tid = static_cast(ThreadContextStatus::CONTEXT_READY); ctxPtr->cv.notify_all(); - ctxPtr->cv.wait_for(lock, TIME_OUT); + ctxPtr->cv.wait_for(lock, TIME_OUT_IN_COPY_CONTEXT); ctxPtr->tid = static_cast(ThreadContextStatus::CONTEXT_UNUSED); #endif }