mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 00:09:51 +03:00
limit weblog buffer on low heap, use deque
This commit is contained in:
@@ -110,6 +110,10 @@ WebLogService::QueuedLogMessage::QueuedLogMessage(unsigned long id, std::shared_
|
||||
}
|
||||
|
||||
void WebLogService::operator<<(std::shared_ptr<uuid::log::Message> message) {
|
||||
if (ESP.getMaxAllocHeap() < 20480) {
|
||||
maximum_log_messages(maximum_log_messages_ > 25 ? maximum_log_messages_ - 25 : 10);
|
||||
// EMSESP::logger().warning("Low memory: WebLog buffer reduced to %d entries", maximum_log_messages_);
|
||||
}
|
||||
if (log_messages_.size() >= maximum_log_messages_) {
|
||||
log_messages_.pop_front();
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ class WebLogService : public uuid::log::Handler {
|
||||
size_t maximum_log_messages_ = MAX_LOG_MESSAGES; // Maximum number of log messages to buffer before they are output
|
||||
unsigned long log_message_id_ = 0; // The next identifier to use for queued log messages
|
||||
unsigned long log_message_id_tail_ = 0; // last event shown on the screen after fetch
|
||||
std::list<QueuedLogMessage> log_messages_; // Queued log messages, in the order they were received
|
||||
std::deque<QueuedLogMessage> log_messages_; // Queued log messages, in the order they were received
|
||||
time_t time_offset_ = 0;
|
||||
bool compact_ = true;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user