diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2011-08-23 13:59:45 +0100 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-08-23 13:59:45 +0100 |
commit | 899d6608e89e07f03e784b37e5ac7b69fd82b74d (patch) | |
tree | db118f2709d12f2b37be11342b221c05d3bc7ca1 | |
parent | 4084aa3544416b9af04883263c06072ff4d1bb5c (diff) | |
download | rabbitmq-server-bug24353.tar.gz |
Neater - avoid irritating sleepbug24353
-rw-r--r-- | src/gen_server2_tests.erl | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/gen_server2_tests.erl b/src/gen_server2_tests.erl index 56cc1aa8..e051cef8 100644 --- a/src/gen_server2_tests.erl +++ b/src/gen_server2_tests.erl @@ -27,10 +27,10 @@ init([]) -> {ok, queue:new()}. -handle_call(pause, From, Q) -> +handle_call(await_go, From, Q) -> gen_server2:reply(From, ok), - timer:sleep(1000), - {noreply, queue:in({call, pause}, Q)}; + receive go -> ok end, + {noreply, queue:in({call, await_go}, Q)}; handle_call(stop, _From, Q) -> Q1 = queue:in({call, stop}, Q), {stop, normal, queue:to_list(Q1), Q1}; @@ -49,26 +49,27 @@ terminate(_Reason, _Q) -> code_change(_OldVsn, State, _Extra) -> {ok, State}. -prioritise_call(pause, _From, _State) -> {infinity, infinity}; -prioritise_call(stop, _From, _State) -> {0, 0}; -prioritise_call({W, P}, _From, _State) -> {W, P}; -prioritise_call(P, _From, _State) -> P. +prioritise_call(await_go, _From, _State) -> {infinity, infinity}; +prioritise_call(stop, _From, _State) -> {0, 0}; +prioritise_call({W, P}, _From, _State) -> {W, P}; +prioritise_call(P, _From, _State) -> P. -prioritise_cast({W, P}, _State) -> {W, P}; -prioritise_cast(P, _State) -> P. +prioritise_cast({W, P}, _State) -> {W, P}; +prioritise_cast(P, _State) -> P. -prioritise_info({W, P}, _State) -> {W, P}; -prioritise_info(P, _State) -> P. +prioritise_info({W, P}, _State) -> {W, P}; +prioritise_info(P, _State) -> P. test() -> {ok, Pid} = gen_server2:start_link(?MODULE, [], []), unlink(Pid), - ok = gen_server2:pcall(Pid, pause, infinity), + ok = gen_server2:pcall(Pid, await_go, infinity), [gen_server2:pcast(Pid, {W, P}) || W <- [infinity | lists:seq(0, 10)], P <- [infinity | lists:seq(0, 10)]], + Pid ! go, Order = gen_server2:pcall(Pid, stop, infinity), - Order = [{call, pause} | + Order = [{call, await_go} | [{cast, {W, P}} || P <- [infinity | lists:seq(10, 0, -1)], W <- [infinity | lists:seq(0, 10)]] ++ |