summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Sikora <piotr.sikora@frickle.com>2011-04-09 16:51:13 +0000
committerPiotr Sikora <piotr.sikora@frickle.com>2011-04-09 16:51:13 +0000
commit2e4ec2ed4337f79c5701fd9e5295c2b6fef50078 (patch)
tree2010d5b9c8dab46621a1b2b1144a94af7909c12e
parent2101ec5b818787d64e01919b1ccafeda4c950268 (diff)
downloadrabbitmq-server-bug24047.tar.gz
Detect available memory on OpenBSD.bug24047
While there, rename freebsd_sysctl() to sysctl(), since sysctl is available on number of different platforms.
-rw-r--r--src/vm_memory_monitor.erl9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/vm_memory_monitor.erl b/src/vm_memory_monitor.erl
index dcc6aff5..fb2fa267 100644
--- a/src/vm_memory_monitor.erl
+++ b/src/vm_memory_monitor.erl
@@ -239,10 +239,13 @@ get_total_memory({unix,darwin}) ->
PageSize * (Inactive + Active + Free + Wired);
get_total_memory({unix,freebsd}) ->
- PageSize = freebsd_sysctl("vm.stats.vm.v_page_size"),
- PageCount = freebsd_sysctl("vm.stats.vm.v_page_count"),
+ PageSize = sysctl("vm.stats.vm.v_page_size"),
+ PageCount = sysctl("vm.stats.vm.v_page_count"),
PageCount * PageSize;
+get_total_memory({unix,openbsd}) ->
+ sysctl("hw.usermem");
+
get_total_memory({win32,_OSname}) ->
%% Due to the Erlang print format bug, on Windows boxes the memory
%% size is broken. For example Windows 7 64 bit with 4Gigs of RAM
@@ -342,7 +345,7 @@ parse_line_aix(Line) ->
false -> list_to_integer(Value)
end}.
-freebsd_sysctl(Def) ->
+sysctl(Def) ->
list_to_integer(cmd("/sbin/sysctl -n " ++ Def) -- "\n").
%% file:read_file does not work on files in /proc as it seems to get