From 0fd8210b5a90a408c51c2cbfe8e3c6c6fc179abe Mon Sep 17 00:00:00 2001 From: Dustin Spicuzza Date: Sun, 11 Jan 2026 05:29:49 -0500 Subject: [PATCH] [ntcore] Release ListenerStorage mutex before stopping thread (#8562) If the thread is still running then it will deadlock. Fixes #8561 --- ntcore/src/main/native/cpp/ListenerStorage.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ntcore/src/main/native/cpp/ListenerStorage.cpp b/ntcore/src/main/native/cpp/ListenerStorage.cpp index 662780da3b..5c2742a223 100644 --- a/ntcore/src/main/native/cpp/ListenerStorage.cpp +++ b/ntcore/src/main/native/cpp/ListenerStorage.cpp @@ -346,14 +346,16 @@ bool ListenerStorage::WaitForListenerQueue(double timeout) { } void ListenerStorage::Reset() { - std::scoped_lock lock{m_mutex}; - m_pollers.clear(); - m_listeners.clear(); - m_connListeners.clear(); - m_topicListeners.clear(); - m_valueListeners.clear(); - m_logListeners.clear(); - m_timeSyncListeners.clear(); + { + std::scoped_lock lock{m_mutex}; + m_pollers.clear(); + m_listeners.clear(); + m_connListeners.clear(); + m_topicListeners.clear(); + m_valueListeners.clear(); + m_logListeners.clear(); + m_timeSyncListeners.clear(); + } m_thread.Join(); }