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_info_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_info_h.erl')
-rw-r--r-- | test/handlers/loop_handler_timeout_info_h.erl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/handlers/loop_handler_timeout_info_h.erl b/test/handlers/loop_handler_timeout_info_h.erl new file mode 100644 index 0000000..92f652e --- /dev/null +++ b/test/handlers/loop_handler_timeout_info_h.erl @@ -0,0 +1,23 @@ +%% This module implements a loop handler that changes +%% the timeout value to 500ms after the first message +%% then sends itself another message after 1000ms. +%% It is expected to timeout, that is, reply a 299. + +-module(loop_handler_timeout_info_h). + +-export([init/2]). +-export([info/3]). +-export([terminate/3]). + +init(Req, _) -> + self() ! message, + {cowboy_loop, Req, undefined}. + +info(message, Req, State) -> + erlang:send_after(200, self(), message), + {ok, Req, State, 100}; +info(timeout, Req, State) -> + {stop, cowboy_req:reply(<<"299 OK!">>, Req), State}. + +terminate(stop, _, _) -> + ok. |