%%% 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.