From cda1146a1d60cfe0d8d65137e701b922e413cc59 Mon Sep 17 00:00:00 2001 From: James Fish Date: Mon, 10 Oct 2016 16:26:25 +0100 Subject: [PATCH] Fix checkout stacktrace when noproc gen_server:cast/2 can set the last stacktrace as it will catch the badarg if a locally named process is not registered. --- src/poolboy.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/poolboy.erl b/src/poolboy.erl index db4973b..fdeeebb 100644 --- a/src/poolboy.erl +++ b/src/poolboy.erl @@ -55,8 +55,9 @@ checkout(Pool, Block, Timeout) -> gen_server:call(Pool, {checkout, CRef, Block}, Timeout) catch Class:Reason -> + Stack = erlang:get_stacktrace(), gen_server:cast(Pool, {cancel_waiting, CRef}), - erlang:raise(Class, Reason, erlang:get_stacktrace()) + erlang:raise(Class, Reason, Stack) end. -spec checkin(Pool :: pool(), Worker :: pid()) -> ok.