mirror of
https://github.com/wled/WLED.git
synced 2025-07-19 08:46:34 +00:00
Defer web requests if JSON lock contended
Use the web server's queuing mechanism to call us back later.
This commit is contained in:
parent
dc317220b3
commit
bec7e54f7f
@ -1060,7 +1060,7 @@ void serveJson(AsyncWebServerRequest* request)
|
||||
}
|
||||
|
||||
if (!requestJSONBufferLock(17)) {
|
||||
serveJsonError(request, 503, ERR_NOBUF);
|
||||
request->deferResponse();
|
||||
return;
|
||||
}
|
||||
// releaseJSONBufferLock() will be called when "response" is destroyed (from AsyncWebServer)
|
||||
|
@ -628,7 +628,10 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
|
||||
//USERMODS
|
||||
if (subPage == SUBPAGE_UM)
|
||||
{
|
||||
if (!requestJSONBufferLock(5)) return;
|
||||
if (!requestJSONBufferLock(5)) {
|
||||
request->deferResponse();
|
||||
return;
|
||||
}
|
||||
|
||||
// global I2C & SPI pins
|
||||
int8_t hw_sda_pin = !request->arg(F("SDA")).length() ? -1 : (int)request->arg(F("SDA")).toInt();
|
||||
|
@ -288,7 +288,7 @@ void initServer()
|
||||
bool isConfig = false;
|
||||
|
||||
if (!requestJSONBufferLock(14)) {
|
||||
serveJsonError(request, 503, ERR_NOBUF);
|
||||
request->deferResponse();
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user