diff options
| author | Matthew Sackman <matthew@lshift.net> | 2010-04-05 23:08:27 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2010-04-05 23:08:27 +0100 |
| commit | 69ac8068271a48be671699a330d12fd74c7f2779 (patch) | |
| tree | cbe958fefde04c3c3175adbe9b9947080ab056ef /src | |
| parent | dde6c60b61ce3cf371f76b4422fe991085ed6504 (diff) | |
| download | rabbitmq-server-git-69ac8068271a48be671699a330d12fd74c7f2779.tar.gz | |
The walker is run within the msg_store process, which traps exits. Thus need to be careful to unlink and ensure we have received any EXIT message generated
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_queue_index.erl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl index 7227481dce..8ad5558387 100644 --- a/src/rabbit_queue_index.erl +++ b/src/rabbit_queue_index.erl @@ -461,7 +461,11 @@ queue_index_walker(DurableQueues) when is_list(DurableQueues) -> queue_index_walker({[], Gatherer}) -> case gatherer:fetch(Gatherer) of - finished -> finished; + finished -> unlink(Gatherer), + receive {'EXIT', Gatherer, _} -> ok + after 0 -> ok + end, + finished; {value, {MsgId, Count}} -> {MsgId, Count, {[], Gatherer}} end; queue_index_walker({[QueueName | QueueNames], Gatherer}) -> |
