From b8f16f0ab8099733a9fb1651c74af9cd1f8837ff Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Mon, 25 Sep 2017 15:38:33 +0200 Subject: stdlib: Introduce gen_server benchmark --- .../simple_server_timer_mon.erl | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib/stdlib/test/stdlib_bench_SUITE_data/simple_server_timer_mon.erl (limited to 'lib/stdlib/test/stdlib_bench_SUITE_data/simple_server_timer_mon.erl') diff --git a/lib/stdlib/test/stdlib_bench_SUITE_data/simple_server_timer_mon.erl b/lib/stdlib/test/stdlib_bench_SUITE_data/simple_server_timer_mon.erl new file mode 100644 index 0000000000..6124ca29c2 --- /dev/null +++ b/lib/stdlib/test/stdlib_bench_SUITE_data/simple_server_timer_mon.erl @@ -0,0 +1,35 @@ +-module(simple_server_timer_mon). + +%% Local process. Timer. Monitor. + +-export([start/1, reply/2, stop/1]). + +start(State) -> + spawn(fun() -> loop(State) end). + +stop(P) -> + P ! {stop, self()}, + receive + ok -> + ok + end. + +loop(S) -> + receive + {reply, P, Mref, M} -> + P ! {ok, Mref, M}, + loop(S); + {stop, P} -> + P ! ok + end. + +reply(P, M) -> + Mref = erlang:monitor(process, P), + P ! {reply, self(), Mref, M}, + receive + {ok, Mref, M} -> + erlang:demonitor(Mref, [flush]), + ok + after 100 -> + exit(fel) + end. -- cgit v1.2.3