refactor: remove mutex handling from LVGLHandler constructor and destructor

This commit is contained in:
GW_MC
2026-01-28 12:20:33 +08:00
parent 440a5e81ed
commit 3e1a651833

View File

@@ -11,12 +11,7 @@
LVGLHandler::LVGLHandler(
std::unique_ptr<EInkDisplayHandler> display_handler_in
) : display_handler_(std::move(display_handler_in)) {
lvgl_mutex_ = xSemaphoreCreateMutex();
if (lvgl_mutex_ == nullptr) {
ESP_LOGE(TAG, "Failed to create LVGL mutex");
}
}
) : display_handler_(std::move(display_handler_in)) { }
LVGLHandler::~LVGLHandler() {
if (lvgl_display_ != nullptr) {
@@ -35,10 +30,6 @@ LVGLHandler::~LVGLHandler() {
heap_caps_free(framebuffer_);
framebuffer_ = nullptr;
}
if (lvgl_mutex_ != nullptr) {
vSemaphoreDelete(lvgl_mutex_);
lvgl_mutex_ = nullptr;
}
}
esp_err_t LVGLHandler::initLVGL(EventGroupHandle_t system_event_group) {
@@ -111,13 +102,6 @@ void LVGLHandler::flush_cb_(lv_display_t* disp, const lv_area_t* area, uint8_t*
uint8_t* pixel_data = px_map + 8; // Skip palette
//
ESP_LOGI(TAG, "Flush callback: x1=%d, y1=%d, x2=%d, y2=%d", area->x1, area->y1, area->x2, area->y2);
// take mutex
SemaphoreGuard guard(handler->lvgl_mutex_);
if (!guard.take(pdMS_TO_TICKS(5000))) {
ESP_LOGE(TAG, "LVGL mutex timeout in flush callback");
lv_display_flush_ready(disp);
return;
}
// copy data to framebuffer
int32_t area_w = lv_area_get_width(area);