From 1e4a98e946725b85ecb9b98e9b5334c06159969f Mon Sep 17 00:00:00 2001 From: gered Date: Mon, 3 Jan 2022 21:24:14 -0500 Subject: [PATCH] fix session store init and default opts handling. how embarrassing! cannot believe i didn't catch this earlier. whoops. --- src/aging_session/core.clj | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/aging_session/core.clj b/src/aging_session/core.clj index 40b4757..91b489f 100644 --- a/src/aging_session/core.clj +++ b/src/aging_session/core.clj @@ -114,15 +114,21 @@ (Thread/sleep sweep-interval) (recur))) +(def default-opts + {:refresh-on-write true + :refresh-on-read true + :sweep-threshold nil + :sweep-interval 30}) + (defn aging-memory-store "Creates an in-memory session storage engine where entries expire after the given ttl" [ttl & [opts]] - (let [{:keys [session-atom refresh-on-write refresh-on-read sweep-threshold sweep-interval] - :or {session-atom (atom {}) - refresh-on-write true - refresh-on-read true - sweep-threshold nil - sweep-interval 30}} opts + (let [{:keys [session-atom refresh-on-write refresh-on-read sweep-threshold sweep-interval] :as opts} + (merge + default-opts + {:session-atom (atom {})} + opts) + ; internally, we want time values as milliseconds. externally, it is more convenient to have them specified ; as seconds because, really, for sessions, no one is really going to want to specify sub-second values for ; any of these times! (no, you don't really need a sweeper thread running multiple times per second ...)