1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
%%% Copyright (c) 2014-2015, NORDUnet A/S.
%%% See LICENSE for licensing information.
-module(stacktrace).
-export([call/2, call/3]).
call(Name, Request) ->
call(Name, Request, 5000).
call(Name, Request, Timeout) ->
Result = (catch gen_server:call(Name, Request, Timeout)),
case Result of
{'EXIT', {timeout, Details}} ->
{current_stacktrace, Stacktrace} =
erlang:process_info(whereis(Name), current_stacktrace),
lager:error("~p: timeout ~p: ~p", [Name, Details, Stacktrace]),
throw(Result);
_ ->
none
end,
Result.
|