diff --git a/src/librf625.cpp b/src/librf625.cpp index 8969ba8181df3dee7e266a8959f4cf2b40b6754b..776479681195511e8181288d2da6d4a7b91966c3 100644 --- a/src/librf625.cpp +++ b/src/librf625.cpp @@ -862,14 +862,16 @@ void rf625::udp_register_callback(rf625_udp_proc proc) void rf625::udp_unregister_callback() { + m_callback_mx.lock(); + if (m_callback) { - m_callback_mx.lock(); m_callback = nullptr; m_thread->join(); delete m_thread; m_thread = nullptr; - m_callback_mx.unlock(); } + + m_callback_mx.unlock(); } /*! Main routine for processing broadcast commands