summaryrefslogtreecommitdiff
path: root/src/stacktrace.erl
blob: 3de477231c96b68314e85e3be48f396e5c7384ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
%%% Copyright (c) 2014, NORDUnet A/S.
%%% See LICENSE for licensing information.

-module(stacktrace).
-export([call/2]).

call(Name, Request) ->
    Result = (catch gen_server:call(Name, Request)),
    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.