8#ifdef USE_ESPHOME_TASK_LOG_BUFFER
93 return read_index_.load(std::memory_order_acquire) != write_index_.load(std::memory_order_acquire);
97 inline size_t size()
const {
return slot_count_; }
102 int acquire_write_slot_();
105 void commit_write_slot_(
int slot_index);
107 std::unique_ptr<LogMessage[]> slots_;
114 std::atomic<size_t> reserve_index_{0};
115 std::atomic<size_t> write_index_{0};
116 std::atomic<size_t> read_index_{0};
Lock-free task log buffer for host platform.
static constexpr size_t DEFAULT_SLOT_COUNT
bool send_message_thread_safe(uint8_t level, const char *tag, uint16_t line, const char *format, va_list args)
TaskLogBufferHost(size_t slot_count)
Constructor that takes the number of message slots.
bool HOT has_messages() const
void release_message_main_loop()
bool get_message_main_loop(LogMessage **message)
static constexpr size_t MAX_THREAD_NAME_SIZE
char text[MAX_TEXT_SIZE+1]
char thread_name[MAX_THREAD_NAME_SIZE]
static constexpr size_t MAX_TEXT_SIZE
std::atomic< bool > ready