From: Stefan Eissing Date: Wed, 29 Mar 2017 06:31:46 +0000 (+0000) Subject: On the trunk: X-Git-Tag: 2.5.0-alpha~515 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ac6721eb694786e032f5b1f3835ef33708c41843;p=apache On the trunk: mod_http2 after review by Christophe: * fix h2_fifo_peek to properly block * check peek return status while processing mplx queue git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1789276 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/http2/h2_util.c b/modules/http2/h2_util.c index 4f4616e5c5..0389193e88 100644 --- a/modules/http2/h2_util.c +++ b/modules/http2/h2_util.c @@ -846,7 +846,7 @@ static apr_status_t fifo_peek(h2_fifo *fifo, h2_fifo_peek_fn *fn, void *ctx, int apr_status_t h2_fifo_peek(h2_fifo *fifo, h2_fifo_peek_fn *fn, void *ctx) { - return fifo_peek(fifo, fn, ctx, 0); + return fifo_peek(fifo, fn, ctx, 1); } apr_status_t h2_fifo_try_peek(h2_fifo *fifo, h2_fifo_peek_fn *fn, void *ctx) diff --git a/modules/http2/h2_workers.c b/modules/http2/h2_workers.c index 02e7d76336..1319934959 100644 --- a/modules/http2/h2_workers.c +++ b/modules/http2/h2_workers.c @@ -134,6 +134,9 @@ static apr_status_t get_next(h2_slot *slot) while (!slot->aborted) { if (!slot->task) { status = h2_fifo_try_peek(workers->mplxs, mplx_peek, slot); + if (status == APR_EOF) { + return status; + } } if (slot->task) {