diff --git a/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp b/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp index 252126025..97233fbb0 100644 --- a/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp +++ b/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp @@ -97,11 +97,13 @@ DeviceListenerLibUsb::registerHotplugCallback(bool arrived, bool left, int vendo // Avoid race conditions m_usbEvents.waitForFinished(); } - if (!m_usbEvents.isRunning()) { - m_completed = false; - m_usbEvents = QtConcurrent::run(handleUsbEvents, static_cast(m_ctx), &m_completed); + if (handle > 0) { + m_callbackHandles.insert(handle); + if (!m_usbEvents.isRunning()) { + m_completed = false; + m_usbEvents = QtConcurrent::run(handleUsbEvents, static_cast(m_ctx), &m_completed); + } } - m_callbackHandles.insert(handle); return handle; }