kopia lustrzana https://github.com/Aircoookie/WLED
Defer web requests if JSON lock contended
Use the web server's queuing mechanism to call us back later.pull/4516/head
rodzic
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;
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue