Thread: clean commissioning proxy thread (#43372)
diff --git a/src/controller/ThreadMeshcopCommissionProxy.cpp b/src/controller/ThreadMeshcopCommissionProxy.cpp index fe89154..202b8da 100644 --- a/src/controller/ThreadMeshcopCommissionProxy.cpp +++ b/src/controller/ThreadMeshcopCommissionProxy.cpp
@@ -76,9 +76,14 @@ ThreadMeshcopCommissionProxy::~ThreadMeshcopCommissionProxy() { + std::lock_guard<std::recursive_mutex> lock(mMutex); if (mProxyFd != -1) { - close(mProxyFd); + if (shutdown(mProxyFd, SHUT_RDWR) == 0 || errno != EBADF) + { + close(mProxyFd); + } + mProxyFd = -1; }