57 va_copy(args_copy,
args);
58 int ret = vsnprintf(
nullptr, 0,
format, args_copy);
66 static constexpr size_t MAX_TEXT_SIZE = 255;
67 size_t text_length = (
static_cast<size_t>(ret) > MAX_TEXT_SIZE) ? MAX_TEXT_SIZE : ret;
70 size_t total_size =
sizeof(
LogMessage) + text_length + 1;
73 void *acquired_memory =
nullptr;
74 BaseType_t result = xRingbufferSendAcquire(ring_buffer_, &acquired_memory, total_size, 0);
76 if (result != pdTRUE || acquired_memory ==
nullptr) {
89 if (thread_name !=
nullptr) {
99 ret = vsnprintf(text_area, text_length + 1,
format,
args);
103 vRingbufferReturnItem(ring_buffer_, acquired_memory);
108 while (text_length > 0 && text_area[text_length - 1] ==
'\n') {
114 result = xRingbufferSendComplete(ring_buffer_, acquired_memory);
116 if (result != pdTRUE) {
121 message_counter_.fetch_add(1, std::memory_order_relaxed);