respect channel blocking when adding consumers

This commit is contained in:
Matthias Radestock 2009-06-10 15:30:49 +01:00
parent 979810d234
commit 248c83d08f
1 changed files with 11 additions and 4 deletions

View File

@ -644,11 +644,18 @@ handle_call({basic_consume, NoAck, ReaderPid, ChPid, LimiterPid,
true -> ExistingHolder
end,
State1 = State#q{has_had_consumers = true,
exclusive_consumer = ExclusiveConsumer,
round_robin = queue:in({ChPid, Consumer},
RoundRobin)},
exclusive_consumer = ExclusiveConsumer},
ok = maybe_send_reply(ChPid, OkMsg),
reply(ok, run_poke_burst(State1))
State2 =
case is_ch_blocked(C) of
true -> State1;
false -> run_poke_burst(
State1#q{
round_robin = queue:in(
{ChPid, Consumer},
RoundRobin)})
end,
reply(ok, State2)
end
end;