diff --git a/src/WebResponses.cpp b/src/WebResponses.cpp index 0717787..1a6dc33 100644 --- a/src/WebResponses.cpp +++ b/src/WebResponses.cpp @@ -2,7 +2,6 @@ #include "AsyncWebServerResponseImpl.h" #include "cbuf.h" - /* * Abstract Response * */ @@ -358,16 +357,15 @@ size_t AsyncResponseStream::_fillBuffer(uint8_t *buf, size_t maxLen){ } size_t AsyncResponseStream::write(const uint8_t *data, size_t len){ - if(_finished()) + if(_finished() || (_content->room() == 0 && ETS_INTR_WITHINISR())) return 0; - //while(_content->room() < len) delay(1); + if(len > _content->getSize()) + len = _content->getSize(); + while(_content->room() < len) delay(0); return _content->write((const char*)data, len); } size_t AsyncResponseStream::write(uint8_t data){ - if(_finished()) - return 0; - //while(_content->room() == 0) delay(1); return write(&data, 1); }