summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-08-17 11:11:32 +0100
committerMatthew Sackman <matthew@lshift.net>2009-08-17 11:11:32 +0100
commitdbb7fb7bd593f97b58d72cad6b1890baf4e1bcb0 (patch)
tree9ee46f95067e246d534ad0ad8afc192c9d67e1dd
parent68fbf57b46cfd5a8bf8de4515373b356ee141707 (diff)
downloadrabbitmq-server-git-dbb7fb7bd593f97b58d72cad6b1890baf4e1bcb0.tar.gz
Changes to avoid having strings going to binaries going to strings going to atoms in the control.
Also dialyzer spotted that multiplying by 2.5 can sometimes result in not-an-int. 'Atta boy.
-rw-r--r--src/rabbit_amqqueue.erl5
-rw-r--r--src/rabbit_control.erl6
-rw-r--r--src/rabbit_disk_queue.erl3
3 files changed, 8 insertions, 6 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index f0e8d4c2f4..62ea465daa 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -102,7 +102,7 @@
-spec(basic_cancel/4 :: (amqqueue(), pid(), ctag(), any()) -> 'ok').
-spec(notify_sent/2 :: (pid(), pid()) -> 'ok').
-spec(unblock/2 :: (pid(), pid()) -> 'ok').
--spec(set_mode_pin/3 :: (binary(), binary(), binary()) -> any()).
+-spec(set_mode_pin/3 :: (vhost(), resource_name(), ('disk'|'mixed')) -> any()).
-spec(set_mode/2 :: (pid(), ('disk' | 'mixed')) -> 'ok').
-spec(internal_declare/2 :: (amqqueue(), bool()) -> amqqueue()).
-spec(internal_delete/1 :: (queue_name()) -> 'ok' | not_found()).
@@ -225,9 +225,8 @@ list(VHostPath) ->
map(VHostPath, F) -> rabbit_misc:filter_exit_map(F, list(VHostPath)).
-set_mode_pin(VHostPath, Queue, DiskBin)
+set_mode_pin(VHostPath, Queue, Disk)
when is_binary(VHostPath) andalso is_binary(Queue) ->
- Disk = list_to_atom(binary_to_list(DiskBin)),
with(rabbit_misc:r(VHostPath, queue, Queue),
fun(Q) -> case Disk of
true -> rabbit_queue_mode_manager:pin_to_disk
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index 79578000d2..99bbb74252 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -289,12 +289,14 @@ action(Command, Node, Args, Inform) ->
action(pin_queue_to_disk, Node, VHost, [Queue], Inform) ->
Inform("Pinning queue ~p in vhost ~p to disk",
[Queue, VHost]),
- call(Node, {rabbit_amqqueue, set_mode_pin, [VHost, Queue, "true"]});
+ rpc_call(Node, rabbit_amqqueue, set_mode_pin,
+ [list_to_binary(VHost), list_to_binary(Queue), true]);
action(unpin_queue_from_disk, Node, VHost, [Queue], Inform) ->
Inform("Unpinning queue ~p in vhost ~p from disk",
[Queue, VHost]),
- call(Node, {rabbit_amqqueue, set_mode_pin, [VHost, Queue, "false"]});
+ rpc_call(Node, rabbit_amqqueue, set_mode_pin,
+ [list_to_binary(VHost), list_to_binary(Queue), false]);
action(set_permissions, Node, VHost, [Username, CPerm, WPerm, RPerm], Inform) ->
Inform("Setting permissions for user ~p in vhost ~p", [Username, VHost]),
diff --git a/src/rabbit_disk_queue.erl b/src/rabbit_disk_queue.erl
index 0d5b6a04f5..5940f5ad04 100644
--- a/src/rabbit_disk_queue.erl
+++ b/src/rabbit_disk_queue.erl
@@ -622,7 +622,8 @@ start_memory_timer(State) ->
report_memory(Hibernating, State) ->
Bytes = memory_use(State),
- rabbit_queue_mode_manager:report_memory(self(), 2.5 * Bytes, Hibernating).
+ rabbit_queue_mode_manager:report_memory(self(), trunc(2.5 * Bytes),
+ Hibernating).
memory_use(#dqstate { operation_mode = ram_disk,
file_summary = FileSummary,