diff --git a/packages/node_modules/@node-red/runtime/lib/storage/index.js b/packages/node_modules/@node-red/runtime/lib/storage/index.js index 0a5ddbf0d..d3350a95e 100644 --- a/packages/node_modules/@node-red/runtime/lib/storage/index.js +++ b/packages/node_modules/@node-red/runtime/lib/storage/index.js @@ -25,6 +25,9 @@ var storageModule; var settingsAvailable; var sessionsAvailable; +var Mutex = require('async-mutex').Mutex; +const settingsSaveMutex = new Mutex(); + var libraryFlowsCachedResult = null; function moduleSelector(aSettings) { @@ -114,7 +117,7 @@ var storageModuleInterface = { }, saveSettings: function(settings) { if (settingsAvailable) { - return storageModule.saveSettings(settings); + return settingsSaveMutex.runExclusive(() => storageModule.saveSettings(settings)) } else { return when.resolve(); }