From 1301081702040189244e19e619b236e93acb70d7 Mon Sep 17 00:00:00 2001 From: ZhangLe2016 <156590889+ZhangLe2016@users.noreply.github.com> Date: Tue, 4 Jun 2024 00:11:33 +0800 Subject: [PATCH] [thread] add Thread stack lock held for output the unicast addresses (#33661) * [thread] add Thread stack lock held for output the unicast addresses * [thread] add Thread stack lock held for output the unicast addresses --- .../OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp | 2 ++ src/platform/OpenThread/OpenThreadUtils.cpp | 5 ----- src/platform/OpenThread/OpenThreadUtils.h | 6 ++++++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp b/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp index 12f9af57a44342..cf1894cf93fc74 100644 --- a/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp +++ b/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp @@ -247,7 +247,9 @@ void GenericThreadStackManagerImpl_OpenThread::_OnPlatformEvent(const } #if CHIP_DETAIL_LOGGING + Impl()->LockThreadStack(); LogOpenThreadStateChange(mOTInst, event->ThreadStateChange.OpenThread.Flags); + Impl()->UnlockThreadStack(); #endif // CHIP_DETAIL_LOGGING } } diff --git a/src/platform/OpenThread/OpenThreadUtils.cpp b/src/platform/OpenThread/OpenThreadUtils.cpp index ef97c7a4e35947..093997c66fb789 100644 --- a/src/platform/OpenThread/OpenThreadUtils.cpp +++ b/src/platform/OpenThread/OpenThreadUtils.cpp @@ -87,11 +87,6 @@ void RegisterOpenThreadErrorFormatter(void) RegisterErrorFormatter(&sOpenThreadErrorFormatter); } -/** - * Log information related to a state change in the OpenThread stack. - * - * NB: This function *must* be called with the Thread stack lock held. - */ void LogOpenThreadStateChange(otInstance * otInst, uint32_t flags) { #if CHIP_DETAIL_LOGGING diff --git a/src/platform/OpenThread/OpenThreadUtils.h b/src/platform/OpenThread/OpenThreadUtils.h index ad2687cf53aea5..f9609e8d8728af 100644 --- a/src/platform/OpenThread/OpenThreadUtils.h +++ b/src/platform/OpenThread/OpenThreadUtils.h @@ -60,6 +60,12 @@ namespace Internal { extern CHIP_ERROR MapOpenThreadError(otError otErr); extern void RegisterOpenThreadErrorFormatter(void); + +/** + * Log information related to a state change in the OpenThread stack. + * + * NB: This function *must* be called with the Thread stack lock held. + */ extern void LogOpenThreadStateChange(otInstance * otInst, uint32_t flags); extern void LogOpenThreadPacket(const char * titleStr, otMessage * pkt); extern bool IsOpenThreadMeshLocalAddress(otInstance * otInst, const Inet::IPAddress & addr);