From 9b5ae9fff9249af4209db0d6531d3be596ebbda0 Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Mon, 22 Dec 2025 23:58:19 +0100 Subject: [PATCH] bugfix: suspendStripService held too long across stateUpdated() call see discussion in https://github.com/MoonModules/WLED-MM/pull/293#issuecomment-3684424421 --- wled00/json.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wled00/json.cpp b/wled00/json.cpp index d462111f..025c70db 100644 --- a/wled00/json.cpp +++ b/wled00/json.cpp @@ -645,10 +645,12 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId) doAdvancePlaylist = root[F("np")] | doAdvancePlaylist; //advances to next preset in playlist when true + // WLEDMM: Release suspendStripService before stateUpdated() to avoid timeout + if (iAmGroot) suspendStripService = false; + stateUpdated(callMode); if (presetToRestore) currentPreset = presetToRestore; - if (iAmGroot) suspendStripService = false; // WLEDMM release lock return stateResponse; } @@ -727,9 +729,11 @@ void serializeSegment(JsonObject& root, Segment& seg, byte id, bool forPreset, b void serializeState(JsonObject root, bool forPreset, bool includeBri, bool segmentBounds, bool selectedSegmentsOnly) { //WLEDMM add DEBUG_PRINT (not USER_PRINT) + #ifdef WLED_DEBUG String temp; serializeJson(root, temp); DEBUG_PRINTF("serializeState %d %s\n", forPreset, temp.c_str()); + #endif if (includeBri) { root["on"] = (bri > 0);