Skip to content

Commit 91dc9a5

Browse files
committed
restore revious presetToSave in case that mutex acquisition fails
1 parent d505dcc commit 91dc9a5

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

wled00/presets.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ void savePreset(byte index, const char* pname, JsonObject sObj)
312312
}
313313

314314
DEBUG_PRINT(F("Saving preset (")); DEBUG_PRINT(index); DEBUG_PRINT(F(") ")); DEBUG_PRINTLN(saveName);
315+
auto oldpresetToSave = presetToSave; // for recovery in case that esp32SemTake(presetFileMux) fails
315316

316317
presetToSave = index;
317318
playlistSave = false;
@@ -330,6 +331,7 @@ void savePreset(byte index, const char* pname, JsonObject sObj)
330331
// WLEDMM Acquire file mutex before writing presets.json, to prevent presets.json corruption
331332
if (esp32SemTake(presetFileMux, 2500) != pdTRUE) {
332333
USER_PRINTLN(F("savePreset(): preset file busy, cannot write"));
334+
presetToSave = oldpresetToSave;
333335
return; // early exit, no change
334336
}
335337

0 commit comments

Comments
 (0)