Commit f17d35be authored by jan.koester's avatar jan.koester
Browse files

test

parent 77e5788f
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -730,12 +730,17 @@ void libhttppp::HttpEvent::_resumeH2Streams(HttpRequest &cureq,
                }
                ss->tempreq->SendData.clear();
            } else {
                // No data yet — upstream still loading
                if (ss->tempreq->slots[0].ResponsePending.exchange(false)) {
                    ss->emptyCount = 0;
                } else {
                // No data yet — upstream still loading.
                // NOTE: ss->tempreq is a synthetic per-stream request, not a
                // real connection tracked by epoll — nothing external ever
                // sets its ResponsePending. The app-level ResponseEvent we
                // just called (e.g. bolli's streaming handler) sets it on
                // *every* empty read as a "rearm me" signal to a real
                // connection; reading it back here as if it meant "new data
                // arrived" was self-referential and reset emptyCount every
                // single time, so the stall counter below could never
                // advance and a permanently-stalled upstream spun forever.
                ++ss->emptyCount;
                }
                if (ss->emptyCount > 500) {
                    // Genuine stall — send END_STREAM
                    out += h2BuildFrame(H2_FRAME_DATA, H2_FLAG_END_STREAM, sid, "");