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);