diff options
author | jdamanalo <[email protected]> | 2023-03-09 15:54:41 +0800 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2023-12-15 15:37:34 +0100 |
commit | a81dc8af9db314e074512e7fc096978c64c9bed1 (patch) | |
tree | 6baf1b170887c4d3ddeb40d3c3daf98031dc7b34 /test/handlers/loop_handler_timeout_init_h.erl | |
parent | a72bf4105f6751662ff00fed85bbdc22ee9c2b80 (diff) | |
download | cowboy-a81dc8af9db314e074512e7fc096978c64c9bed1.tar.gz cowboy-a81dc8af9db314e074512e7fc096978c64c9bed1.tar.bz2 cowboy-a81dc8af9db314e074512e7fc096978c64c9bed1.zip |
Add timeout to cowboy_loop
LH: I have added a test that does both hibernate and timeout
and fixed a related issue. I also tweaked the docs and tests.
Diffstat (limited to 'test/handlers/loop_handler_timeout_init_h.erl')
-rw-r--r-- | test/handlers/loop_handler_timeout_init_h.erl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/handlers/loop_handler_timeout_init_h.erl b/test/handlers/loop_handler_timeout_init_h.erl new file mode 100644 index 0000000..ba0b34b --- /dev/null +++ b/test/handlers/loop_handler_timeout_init_h.erl @@ -0,0 +1,23 @@ +%% This module implements a loop handler that reads +%% the request query for a timeout value, then sends +%% itself a message after 1000ms. It replies a 200 when +%% the message does not timeout and a 299 otherwise. + +-module(loop_handler_timeout_init_h). + +-export([init/2]). +-export([info/3]). +-export([terminate/3]). + +init(Req, _) -> + #{timeout := Timeout} = cowboy_req:match_qs([{timeout, int}], Req), + erlang:send_after(200, self(), message), + {cowboy_loop, Req, undefined, Timeout}. + +info(message, Req, State) -> + {stop, cowboy_req:reply(200, Req), State}; +info(timeout, Req, State) -> + {stop, cowboy_req:reply(<<"299 OK!">>, Req), State}. + +terminate(stop, _, _) -> + ok. |