From 87666417cf2e1c4885f9e92601217f03cf7363e6 Mon Sep 17 00:00:00 2001 From: Christopher Date: Sat, 7 Mar 2020 19:22:50 -0600 Subject: [PATCH] default timeouts for calls --- lib/cluster_kv.ex | 10 ++++++---- lib/cluster_kv/ring.ex | 15 ++++++++------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/cluster_kv.ex b/lib/cluster_kv.ex index a8a42fd..d00aac0 100644 --- a/lib/cluster_kv.ex +++ b/lib/cluster_kv.ex @@ -42,10 +42,12 @@ defmodule ClusterKV do def ring_name(name), do: Module.concat([name, Ring]) def cluster_supervisor_name(name), do: Module.concat([name, ClusterSupervisor]) - defdelegate get(name, key), to: Ring + defdelegate get(name, key, timeout \\ :infinity), to: Ring defdelegate put(name, key, value), to: Ring defdelegate put_wildcard(name, header, key, value, split_on, join, wildcard), to: Ring - defdelegate prefix(name, key, split_on, min), to: Ring - defdelegate stream(name), to: Ring - defdelegate wildcard(name, header, key, split_on, join, wildcard), to: Ring + defdelegate prefix(name, key, split_on, min, timeout \\ :infinity), to: Ring + defdelegate stream(name, timeout \\ :infinity), to: Ring + + defdelegate wildcard(name, header, key, split_on, join, wildcard, timeout \\ :infinity), + to: Ring end diff --git a/lib/cluster_kv/ring.ex b/lib/cluster_kv/ring.ex index 9d9726c..b22deba 100644 --- a/lib/cluster_kv/ring.ex +++ b/lib/cluster_kv/ring.ex @@ -55,23 +55,24 @@ defmodule ClusterKV.Ring do ) end - def get(name, key, timeout \\ 5000) do + def get(name, key, timeout) do :gen_statem.call(ClusterKV.ring_name(name), {:get, key}, timeout) end - def prefix(name, key, split_on, min) do - :gen_statem.call(ClusterKV.ring_name(name), {:prefix, key, split_on, min}) + def prefix(name, key, split_on, min, timeout) do + :gen_statem.call(ClusterKV.ring_name(name), {:prefix, key, split_on, min}, timeout) end - def wildcard(name, header, key, split_on, join, wildcard) do + def wildcard(name, header, key, split_on, join, wildcard, timeout) do :gen_statem.call( ClusterKV.ring_name(name), - {:wildcard, header, key, split_on, join, wildcard} + {:wildcard, header, key, split_on, join, wildcard}, + timeout ) end - def stream(name) do - :gen_statem.call(ClusterKV.ring_name(name), :stream) + def stream(name, timeout) do + :gen_statem.call(ClusterKV.ring_name(name), :stream, timeout) end def handle_resource(@handle_init, _, @init, %SL{data: %Ring{} = data} = sl) do -- 2.45.3