summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2011-07-28 15:02:52 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2011-07-28 15:02:52 +0100
commitfc65da2a1bfa9045945ee3b60311e079941e1ff3 (patch)
tree17a34d3da44d6c098a01276a20098a3b0d023937 /src
parent031179d8deea02070cecfe54dd251f73c00a9844 (diff)
downloadrabbitmq-server-git-fc65da2a1bfa9045945ee3b60311e079941e1ff3.tar.gz
Don't call prioritise_info for EXIT from parent. Use infinity priority for system msgs and EXIT from parent
Diffstat (limited to 'src')
-rw-r--r--src/gen_server2.erl7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gen_server2.erl b/src/gen_server2.erl
index dad04fa78b..d4d583a086 100644
--- a/src/gen_server2.erl
+++ b/src/gen_server2.erl
@@ -608,6 +608,13 @@ in({'$gen_call', From, Msg}, GS2State = #gs2_state { prioritise_call = PC,
GS2State #gs2_state { queue = priority_queue:in(
{'$gen_call', From, Msg},
PC(Msg, From, GS2State), Queue) };
+in({'EXIT', Parent, Reason},
+ GS2State = #gs2_state { parent = Parent, queue = Queue }) ->
+ GS2State #gs2_state { queue = priority_queue:in(
+ {'EXIT', Parent, Reason}, infinity, Queue) };
+in({system, From, Req}, GS2State = #gs2_state { queue = Queue }) ->
+ GS2State #gs2_state { queue = priority_queue:in(
+ {system, From, Req}, infinity, Queue) };
in(Input, GS2State = #gs2_state { prioritise_info = PI, queue = Queue }) ->
GS2State #gs2_state { queue = priority_queue:in(
Input, PI(Input, GS2State), Queue) }.