summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2011-08-23 13:59:45 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2011-08-23 13:59:45 +0100
commit899d6608e89e07f03e784b37e5ac7b69fd82b74d (patch)
treedb118f2709d12f2b37be11342b221c05d3bc7ca1
parent4084aa3544416b9af04883263c06072ff4d1bb5c (diff)
downloadrabbitmq-server-bug24353.tar.gz
Neater - avoid irritating sleepbug24353
-rw-r--r--src/gen_server2_tests.erl27
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)]] ++