From 0c247a2b3789fdb4295673e1771db4f23c4520ee Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Fri, 16 Aug 2024 14:46:23 -0400 Subject: [PATCH] make isQueueFull() checking -- less aggressive; --- src/bridge/BridgeMain.cpp | 2 +- src/fne/FNEMain.cpp | 2 +- src/host/HostMain.cpp | 2 +- src/host/dmr/Slot.cpp | 10 ++++++++-- src/host/nxdn/Control.cpp | 10 ++++++++-- src/host/p25/Control.cpp | 10 ++++++++-- src/monitor/MonitorMain.cpp | 2 +- src/remote/RESTClientMain.cpp | 2 +- 8 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/bridge/BridgeMain.cpp b/src/bridge/BridgeMain.cpp index 66771d91..07063d1f 100644 --- a/src/bridge/BridgeMain.cpp +++ b/src/bridge/BridgeMain.cpp @@ -83,7 +83,7 @@ void fatal(const char* msg, ...) va_end(vl); - ::fprintf(stderr, "%s: %s\n", g_progExe.c_str(), buffer); + ::fprintf(stderr, "%s: FATAL PANIC; %s\n", g_progExe.c_str(), buffer); exit(EXIT_FAILURE); } diff --git a/src/fne/FNEMain.cpp b/src/fne/FNEMain.cpp index 79414245..ec63f18c 100644 --- a/src/fne/FNEMain.cpp +++ b/src/fne/FNEMain.cpp @@ -70,7 +70,7 @@ void fatal(const char* msg, ...) va_end(vl); - ::fprintf(stderr, "%s: %s\n", g_progExe.c_str(), buffer); + ::fprintf(stderr, "%s: FATAL PANIC; %s\n", g_progExe.c_str(), buffer); exit(EXIT_FAILURE); } diff --git a/src/host/HostMain.cpp b/src/host/HostMain.cpp index e6ee8a7e..84ccd6cc 100644 --- a/src/host/HostMain.cpp +++ b/src/host/HostMain.cpp @@ -88,7 +88,7 @@ void fatal(const char* msg, ...) va_end(vl); - ::fprintf(stderr, "%s: %s\n", g_progExe.c_str(), buffer); + ::fprintf(stderr, "%s: FATAL PANIC; %s\n", g_progExe.c_str(), buffer); exit(EXIT_FAILURE); } diff --git a/src/host/dmr/Slot.cpp b/src/host/dmr/Slot.cpp index cadcfb46..69df19f4 100644 --- a/src/host/dmr/Slot.cpp +++ b/src/host/dmr/Slot.cpp @@ -339,11 +339,17 @@ bool Slot::isQueueFull() // tx immediate queue takes priority if (!m_txImmQueue.isEmpty()) { - return !m_txImmQueue.hasSpace(DMR_FRAME_LENGTH_BYTES); + uint32_t space = m_txImmQueue.freeSpace(); + if (space < (DMR_FRAME_LENGTH_BYTES + 1U)) + return true; } else { - return !m_txQueue.hasSpace(DMR_FRAME_LENGTH_BYTES); + uint32_t space = m_txQueue.freeSpace(); + if (space < (DMR_FRAME_LENGTH_BYTES + 1U)) + return true; } + + return false; } /* Get frame data from data ring buffer. */ diff --git a/src/host/nxdn/Control.cpp b/src/host/nxdn/Control.cpp index 2944ea43..844923ce 100644 --- a/src/host/nxdn/Control.cpp +++ b/src/host/nxdn/Control.cpp @@ -492,11 +492,17 @@ bool Control::isQueueFull() // tx immediate queue takes priority if (!m_txImmQueue.isEmpty()) { - return !m_txImmQueue.hasSpace(NXDN_FRAME_LENGTH_BYTES); + uint32_t space = m_txImmQueue.freeSpace(); + if (space < (NXDN_FRAME_LENGTH_BYTES + 1U)) + return true; } else { - return !m_txQueue.hasSpace(NXDN_FRAME_LENGTH_BYTES); + uint32_t space = m_txQueue.freeSpace(); + if (space < (NXDN_FRAME_LENGTH_BYTES + 1U)) + return true; } + + return false; } /* Get frame data from data ring buffer. */ diff --git a/src/host/p25/Control.cpp b/src/host/p25/Control.cpp index 7906ca88..80e036ae 100644 --- a/src/host/p25/Control.cpp +++ b/src/host/p25/Control.cpp @@ -706,11 +706,17 @@ bool Control::isQueueFull() // tx immediate queue takes priority if (!m_txImmQueue.isEmpty()) { - return !m_txImmQueue.hasSpace(P25_LDU_FRAME_LENGTH_BYTES); + uint32_t space = m_txImmQueue.freeSpace(); + if (space < (P25_LDU_FRAME_LENGTH_BYTES + 1U)) + return true; } else { - return !m_txQueue.hasSpace(P25_LDU_FRAME_LENGTH_BYTES); + uint32_t space = m_txQueue.freeSpace(); + if (space < (P25_LDU_FRAME_LENGTH_BYTES + 1U)) + return true; } + + return false; } /* Get frame data from data ring buffer. */ diff --git a/src/monitor/MonitorMain.cpp b/src/monitor/MonitorMain.cpp index 035cfa2b..a4a4158e 100644 --- a/src/monitor/MonitorMain.cpp +++ b/src/monitor/MonitorMain.cpp @@ -58,7 +58,7 @@ void fatal(const char* msg, ...) va_end(vl); - ::fprintf(stderr, "%s: %s\n", g_progExe.c_str(), buffer); + ::fprintf(stderr, "%s: FATAL PANIC; %s\n", g_progExe.c_str(), buffer); exit(EXIT_FAILURE); } diff --git a/src/remote/RESTClientMain.cpp b/src/remote/RESTClientMain.cpp index 96d940f1..42361f93 100644 --- a/src/remote/RESTClientMain.cpp +++ b/src/remote/RESTClientMain.cpp @@ -158,7 +158,7 @@ static bool g_debug = false; void fatal(const char* message) { - ::fprintf(stderr, "%s: %s\n", g_progExe.c_str(), message); + ::fprintf(stderr, "%s: FATAL PANIC; %s\n", g_progExe.c_str(), message); exit(EXIT_FAILURE); }