diff --git a/src/host/dmr/Slot.cpp b/src/host/dmr/Slot.cpp index 15c22cd7..4ff67e50 100644 --- a/src/host/dmr/Slot.cpp +++ b/src/host/dmr/Slot.cpp @@ -312,6 +312,8 @@ bool Slot::processFrame(uint8_t *data, uint32_t len) uint32_t Slot::peekFrameLength() { + std::lock_guard lock(m_queueLock); + if (m_txQueue.isEmpty() && m_txImmQueue.isEmpty()) return 0U; diff --git a/src/host/nxdn/Control.cpp b/src/host/nxdn/Control.cpp index 746bfc82..13bab34a 100644 --- a/src/host/nxdn/Control.cpp +++ b/src/host/nxdn/Control.cpp @@ -465,6 +465,8 @@ bool Control::processFrame(uint8_t* data, uint32_t len) uint32_t Control::peekFrameLength() { + std::lock_guard lock(m_queueLock); + if (m_txQueue.isEmpty() && m_txImmQueue.isEmpty()) return 0U; diff --git a/src/host/p25/Control.cpp b/src/host/p25/Control.cpp index 38befffa..e3449796 100644 --- a/src/host/p25/Control.cpp +++ b/src/host/p25/Control.cpp @@ -674,6 +674,8 @@ bool Control::processFrame(uint8_t* data, uint32_t len) uint32_t Control::peekFrameLength() { + std::lock_guard lock(m_queueLock); + if (m_txQueue.isEmpty() && m_txImmQueue.isEmpty()) return 0U;