From 4a03c09f0cbf119a9bda66c4dfc4712627b5cac5 Mon Sep 17 00:00:00 2001 From: Chris Apple Date: Sat, 28 Dec 2024 11:28:00 -0800 Subject: [PATCH] Few tweaks from self review --- README.md | 4 ++-- include/rtlog/rtlog.h | 19 +++++-------------- test/test_rtlog.cpp | 2 +- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 82d40b1..ccc471f 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Slides: - Ability to log messages of any type and size from the real-time thread - Statically allocated memory at compile time, no allocations in the real-time thread - Support for printf-style format specifiers (using [a version of the printf family](https://github.com/nothings/stb/blob/master/stb_sprintf.h) that doesn't hit the `localeconv` lock) OR support for modern libfmt formatting. -- Efficient thread-safe logging using a [lock free queue](https://github.com/hogliux/farbot) +- Efficient thread-safe logging using a [lock free queue](https://github.com/hogliux/farbot). ## Requirements @@ -102,7 +102,7 @@ static auto PrintMessage = [](const ExampleLogData& data, size_t sequenceNumber, vsnprintf(buffer.data(), buffer.size(), fstring, args); va_end(args); - printf("{%lu} [%s] (%s): %s\n", + printf("{%lu} [%s] (%s): %s\n", sequenceNumber, rtlog::test::to_string(data.level), rtlog::test::to_string(data.region), diff --git a/include/rtlog/rtlog.h b/include/rtlog/rtlog.h index 1481676..4932f5b 100644 --- a/include/rtlog/rtlog.h +++ b/include/rtlog/rtlog.h @@ -195,6 +195,7 @@ class Logger { using InternalLogData = detail::BasicLogData; using InternalQType = QType; + static_assert(MaxNumMessages > 0); static_assert((MaxNumMessages & (MaxNumMessages - 1)) == 0, "MaxNumMessages must be a power of 2"); static_assert( @@ -257,13 +258,8 @@ class Logger { // data loss const bool dataWasEnqueued = mQueue.try_enqueue(std::move(dataToQueue)); - constexpr bool isMultiRealtimeWriterQueueType = - std::is_same_v>; - if constexpr (!isMultiRealtimeWriterQueueType) { - if (!dataWasEnqueued) - retVal = Status::Error_QueueFull; - } + if (!dataWasEnqueued) + retVal = Status::Error_QueueFull; return retVal; } @@ -359,13 +355,8 @@ class Logger { // data loss const bool dataWasEnqueued = mQueue.try_enqueue(std::move(dataToQueue)); - constexpr bool isMultiRealtimeWriterQueueType = - std::is_same_v>; - if constexpr (!isMultiRealtimeWriterQueueType) { - if (!dataWasEnqueued) - retVal = Status::Error_QueueFull; - } + if (!dataWasEnqueued) + retVal = Status::Error_QueueFull; return retVal; }; diff --git a/test/test_rtlog.cpp b/test/test_rtlog.cpp index b66938d..b1bb1ba 100644 --- a/test/test_rtlog.cpp +++ b/test/test_rtlog.cpp @@ -206,7 +206,7 @@ TYPED_TEST(TruncatedRtLogTest, ErrorsReturnedFromLog) { va_end(args); EXPECT_STREQ(buffer.data(), "Hello, 12"); - EXPECT_EQ(strlen(buffer.data()), maxMessageLength - 1); + EXPECT_EQ(strlen(buffer.data()), this->maxMessageLength - 1); }; EXPECT_EQ(logger.PrintAndClearLogQueue(InspectLogMessage), 2); }