From 49af57d546b5e2fd5aaa9fcd43d09060b9682c5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 13 Sep 2019 14:20:04 +0200 Subject: Implement backpressure on cowboy_req:stream_body This should limit the amount of memory that Cowboy is using when a handler is sending data much faster than the network. The new max_stream_buffer_size is a soft limit and only has an effect when the cowboy_stream_h handler is used. --- test/handlers/resp_h.erl | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'test/handlers/resp_h.erl') diff --git a/test/handlers/resp_h.erl b/test/handlers/resp_h.erl index 5e5e766..19405db 100644 --- a/test/handlers/resp_h.erl +++ b/test/handlers/resp_h.erl @@ -221,6 +221,11 @@ do(<<"stream_body">>, Req0, Opts) -> cowboy_req:stream_body(<<"world">>, nofin, Req), cowboy_req:stream_body(<<"!">>, fin, Req), {ok, Req, Opts}; + <<"loop">> -> + Req = cowboy_req:stream_reply(200, Req0), + _ = [cowboy_req:stream_body(<<0:1000000/unit:8>>, nofin, Req) + || _ <- lists:seq(1, 32)], + {ok, Req, Opts}; <<"nofin">> -> Req = cowboy_req:stream_reply(200, Req0), cowboy_req:stream_body(<<"Hello world!">>, nofin, Req), -- cgit v1.2.3