diff options
| author | Matthew Sackman <matthew@rabbitmq.com> | 2010-12-21 13:23:06 +0000 |
|---|---|---|
| committer | Matthew Sackman <matthew@rabbitmq.com> | 2010-12-21 13:23:06 +0000 |
| commit | 17aec78d02bfe35fbe9a231a8a058cc654e13afe (patch) | |
| tree | f385549da1cdd87b11f7213966e947bb5a8b79cd /include | |
| parent | 035d4992771be3e4eb976ad8aade9aedc50f2b83 (diff) | |
| download | rabbitmq-server-git-17aec78d02bfe35fbe9a231a8a058cc654e13afe.tar.gz | |
Correct all manner of crazy wrongness with maybe_run_queue_via_backing_queue. The principle problem is that the state with which the function is to be run is dependent on the caller. Sometimes it's the 'top level' BQ state (eg invocations called by amqqueue_process). Sometimes it's the 'bottom level' state (eg invocations called by vq or qi or msg_store). We didn't used to have multiple layers, but now we do. Consequently, the invocation must indicate 'where' the fun is to be run. The clearest explanation is in master:invoke/3
Diffstat (limited to 'include')
| -rw-r--r-- | include/rabbit_backing_queue_spec.hrl | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/rabbit_backing_queue_spec.hrl b/include/rabbit_backing_queue_spec.hrl index a330fe1e79..fdb144d649 100644 --- a/include/rabbit_backing_queue_spec.hrl +++ b/include/rabbit_backing_queue_spec.hrl @@ -78,3 +78,5 @@ -spec(idle_timeout/1 :: (state()) -> state()). -spec(handle_pre_hibernate/1 :: (state()) -> state()). -spec(status/1 :: (state()) -> [{atom(), any()}]). +-spec(invoke/3 :: (atom(), fun ((A) -> A), state()) -> + {[rabbit_guid:guid()], state()}). |
