Innopolis University DevOps Playground
Skip to content
Snippets Groups Projects
Commit 4419e9f9 authored by Badlop's avatar Badlop
Browse files

Revert the misplaced 2055 2058 and 2062 which were intended for trunk.

SVN Revision: 2065
parent 98ad6ccb
No related branches found
Tags v2.0.4
No related merge requests found
...@@ -31,12 +31,11 @@ ...@@ -31,12 +31,11 @@
get_so_path/0, get_bin_path/0]). get_so_path/0, get_bin_path/0]).
start() -> start() ->
%ejabberd_cover:start(),
application:start(ejabberd). application:start(ejabberd).
stop() -> stop() ->
application:stop(ejabberd). application:stop(ejabberd).
%ejabberd_cover:stop().
get_so_path() -> get_so_path() ->
case os:getenv("EJABBERD_SO_PATH") of case os:getenv("EJABBERD_SO_PATH") of
......
...@@ -59,8 +59,9 @@ start(normal, _Args) -> ...@@ -59,8 +59,9 @@ start(normal, _Args) ->
ejabberd_auth:start(), ejabberd_auth:start(),
cyrsasl:start(), cyrsasl:start(),
% Profiling % Profiling
%ejabberd_debug:eprof_start(), %eprof:start(),
%fprof:trace([start, {file, "/tmp/fprof"}, {procs, ejabberd_debug:pids()}]), %eprof:profile([self()]),
%fprof:trace(start, "/tmp/fprof"),
maybe_add_nameservers(), maybe_add_nameservers(),
start_modules(), start_modules(),
Sup; Sup;
...@@ -76,7 +77,6 @@ prep_stop(State) -> ...@@ -76,7 +77,6 @@ prep_stop(State) ->
%% All the processes were killed when this function is called %% All the processes were killed when this function is called
stop(_State) -> stop(_State) ->
ejabberd_debug:stop(),
ok. ok.
......
...@@ -90,7 +90,6 @@ process(["status"]) -> ...@@ -90,7 +90,6 @@ process(["status"]) ->
end; end;
process(["stop"]) -> process(["stop"]) ->
%ejabberd_cover:stop(),
init:stop(), init:stop(),
?STATUS_SUCCESS; ?STATUS_SUCCESS;
......
%%%----------------------------------------------------------------------
%%% File : ejabberd_debug.erl
%%% Author : Mickael Remond
%%% Purpose : ejabberd's application callback module
%%% Created : 6 may 2009 by Mickael Remond <mremond@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2009 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(ejabberd_debug).
-export([eprof_start/0, stop/0]).
-export([pids/0]).
eprof_start() ->
eprof:start(),
eprof:profile(pids()).
%% Stop all profilers
stop() ->
catch eprof:stop(),
ok.
pids() ->
lists:zf(
fun(Pid) ->
case process_info(Pid) of
ProcessInfo when list(ProcessInfo) ->
CurrentFunction = current_function(ProcessInfo),
InitialCall = initial_call(ProcessInfo),
RegisteredName = registered_name(ProcessInfo),
Ancestor = ancestor(ProcessInfo),
filter_pid(Pid, CurrentFunction, InitialCall, RegisteredName, Ancestor);
_ ->
false
end
end,
processes()).
current_function(ProcessInfo) ->
{value, {_, {CurrentFunction, _,_}}} =
lists:keysearch(current_function, 1, ProcessInfo),
atom_to_list(CurrentFunction).
initial_call(ProcessInfo) ->
{value, {_, {InitialCall, _,_}}} =
lists:keysearch(initial_call, 1, ProcessInfo),
atom_to_list(InitialCall).
registered_name(ProcessInfo) ->
case lists:keysearch(registered_name, 1, ProcessInfo) of
{value, {_, Name}} when is_atom(Name) -> atom_to_list(Name);
_ -> ""
end.
ancestor(ProcessInfo) ->
{value, {_, Dictionary}} = lists:keysearch(dictionary, 1, ProcessInfo),
case lists:keysearch('$ancestors', 1, Dictionary) of
{value, {_, [Ancestor|_T]}} when is_atom(Ancestor) ->
atom_to_list(Ancestor);
_ ->
""
end.
filter_pid(Pid, "ejabberd" ++ _, _InitialCall, _RegisteredName, _Ancestor) ->
{true, Pid};
filter_pid(Pid, _CurrentFunction, "ejabberd" ++ _, _RegisteredName, _Ancestor) ->
{true, Pid};
filter_pid(Pid, _CurrentFunction, _InitialCall, "ejabberd"++_, _Ancestor) ->
{true, Pid};
filter_pid(Pid, _CurrentFunction, _InitialCall, "stringprep"++_, _Ancestor) ->
{true, Pid};
filter_pid(Pid, _CurrentFunction, _InitialCall, _RegisteredName, "ejabberd"++_) ->
{true, Pid};
filter_pid(_Pid, _CurrentFunction, _InitialCall, _RegisteredName, _Ancestor) ->
false.
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment