diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-10-23 14:39:55 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-10-23 14:39:55 +0100 |
| commit | b1bd75a4062900c67213c39d94e3dd04547defdc (patch) | |
| tree | 02db6a1eb429541388266f6fe2bb7069695e15b2 /src | |
| parent | 9ab1135f64baa7f59fbc3cb2e6b43f2a1614c748 (diff) | |
| download | rabbitmq-server-git-b1bd75a4062900c67213c39d94e3dd04547defdc.tar.gz | |
Yes, turns out it's a good idea to observe the is_persistent flag...
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_variable_queue.erl | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index cb2bdca718..d9520d0080 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -384,9 +384,14 @@ tx_commit_from_msg_store(Pubs, AckTags, From, State) -> State1 = ack(DiskAcks, State), {PubSeqIds, State2 = #vqstate { index_state = IndexState }} = lists:foldl( - fun (Msg, {SeqIdsAcc, StateN}) -> + fun (Msg = #basic_message { is_persistent = IsPersistent }, + {SeqIdsAcc, StateN}) -> {SeqId, StateN1} = publish(Msg, false, true, StateN), - {[SeqId | SeqIdsAcc], StateN1} + SeqIdsAcc1 = case IsPersistent of + true -> [SeqId | SeqIdsAcc]; + false -> SeqIdsAcc + end, + {SeqIdsAcc1, StateN1} end, {[], State1}, Pubs), IndexState1 = rabbit_queue_index:sync_seq_ids(PubSeqIds, [] /= DiskAcks, IndexState), |
