diff options
Diffstat (limited to 'test/handlers/long_polling_sys_h.erl')
-rw-r--r-- | test/handlers/long_polling_sys_h.erl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/handlers/long_polling_sys_h.erl b/test/handlers/long_polling_sys_h.erl new file mode 100644 index 0000000..7745d8c --- /dev/null +++ b/test/handlers/long_polling_sys_h.erl @@ -0,0 +1,23 @@ +%% This module implements a loop handler that does nothing +%% and expects a crash to happen. + +-module(long_polling_sys_h). + +-export([init/2]). +-export([info/3]). +-export([terminate/3]). + +init(Req, _) -> + process_flag(trap_exit, true), + erlang:send_after(500, self(), timeout), + {cowboy_loop, Req, undefined, hibernate}. + +info(timeout, Req, State) -> + %% Send an unused status code to make sure there's no + %% conflict with whatever Cowboy may send itself. + {ok, cowboy_req:reply(<<"299 OK!">>, Req), State}; +info(_, Req, State) -> + {ok, Req, State}. + +terminate({crash, _, _}, _, _) -> + ok. |