summaryrefslogtreecommitdiff
path: root/src/stacktrace.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/stacktrace.erl')
-rw-r--r--src/stacktrace.erl18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/stacktrace.erl b/src/stacktrace.erl
new file mode 100644
index 0000000..3de4772
--- /dev/null
+++ b/src/stacktrace.erl
@@ -0,0 +1,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.