0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 04:30:25 +00:00
cowboy/test/handlers/long_polling_h.erl
Loïc Hoguin 8cbd8c1882 Rename 'shutdown' close reason and tuples to 'stop'
The 'shutdown' atom has a specific meaning inside OTP. We are
instead going to use 'stop' which is pretty much the equivalent
of what we actually do. 'shutdown' is now reserved for future
special processes implementation.
2014-11-07 19:22:36 +02:00

25 lines
672 B
Erlang

%% This module implements a loop handler for long-polling.
%% It starts by sending itself a message after 200ms,
%% then sends another after that for a total of 3 messages.
%% When it receives the last message, it sends a 102 reply back.
-module(long_polling_h).
-export([init/2]).
-export([info/3]).
-export([terminate/3]).
init(Req, _) ->
erlang:send_after(200, self(), timeout),
{cowboy_loop, Req, 2, 5000, hibernate}.
info(timeout, Req, 0) ->
{stop, cowboy_req:reply(102, Req), 0};
info(timeout, Req, Count) ->
erlang:send_after(200, self(), timeout),
{ok, Req, Count - 1, hibernate}.
terminate(stop, _, 0) ->
ok;
terminate({error, overflow}, _, _) ->
ok.