aboutsummaryrefslogtreecommitdiffstats
path: root/lib/os_mon/src/os_mon.erl
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2012-01-25 14:50:48 +0100
committerLukas Larsson <[email protected]>2012-01-25 14:50:48 +0100
commit92b5a1ad679dec79ae40cee4a144f6da614433e1 (patch)
tree848b3973460a3bbfd6acb12e8c3689e9a81562d4 /lib/os_mon/src/os_mon.erl
parent1436244c50e214c3de656c52022881bc8a27ca37 (diff)
parent8b129dda86fe28b943180153561423bbb7957582 (diff)
downloadotp-92b5a1ad679dec79ae40cee4a144f6da614433e1.tar.gz
otp-92b5a1ad679dec79ae40cee4a144f6da614433e1.tar.bz2
otp-92b5a1ad679dec79ae40cee4a144f6da614433e1.zip
Merge branch 'maint'
* maint: Look for port in priv/bin/arch/ as well as priv/bin/ Fix on_load handling in modules loaded by code:load_binary/3
Diffstat (limited to 'lib/os_mon/src/os_mon.erl')
-rw-r--r--lib/os_mon/src/os_mon.erl20
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/os_mon/src/os_mon.erl b/lib/os_mon/src/os_mon.erl
index ef368571db..3098c38808 100644
--- a/lib/os_mon/src/os_mon.erl
+++ b/lib/os_mon/src/os_mon.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
+%% Copyright Ericsson AB 1996-2012. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
@@ -22,7 +22,7 @@
-behaviour(supervisor).
%% API
--export([call/2, call/3, get_env/2]).
+-export([call/2, call/3, get_env/2, open_port/2]).
%% Application callbacks
-export([start/2, stop/1]).
@@ -79,6 +79,22 @@ get_env(Service, Param) ->
Service:param_default(Param)
end.
+open_port(Name, Opts) ->
+ PrivDir = code:priv_dir(os_mon),
+ ReleasedPath = filename:join([PrivDir,"bin",Name]),
+ %% Check os_mon*/priv/bin/Name
+ case filelib:is_regular(ReleasedPath) of
+ true ->
+ erlang:open_port({spawn, ReleasedPath}, Opts);
+ false ->
+ %% Use os_mon*/priv/bin/Arch/Name
+ ArchPath =
+ filename:join(
+ [PrivDir,"bin",erlang:system_info(system_architecture),Name]),
+ erlang:open_port({spawn, ArchPath}, Opts)
+ end.
+
+
%%%-----------------------------------------------------------------
%%% Application callbacks
%%%-----------------------------------------------------------------