Connection Pool: don't enforce pool limits if no new connection needs to be opened

This commit is contained in:
rinpatch 2020-05-06 21:41:34 +03:00
parent 58a4f350a8
commit fffbcffb8c

View file

@ -2,8 +2,6 @@ defmodule Pleroma.Gun.ConnectionPool do
@registry __MODULE__
def get_conn(uri, opts) do
case enforce_pool_limits() do
:ok ->
key = "#{uri.scheme}:#{uri.host}:#{uri.port}"
case Registry.lookup(@registry, key) do
@ -16,6 +14,8 @@ def get_conn(uri, opts) do
{:ok, gun_pid}
[] ->
case enforce_pool_limits() do
:ok ->
# :gun.set_owner fails in :connected state for whatevever reason,
# so we open the connection in the process directly and send it's pid back
# We trust gun to handle timeouts by itself
@ -33,12 +33,12 @@ def get_conn(uri, opts) do
err ->
err
end
end
:error ->
{:error, :pool_full}
end
end
end
@enforcer_key "enforcer"
defp enforce_pool_limits() do