From 31165fec69ff86129a1ada8b3f50864922dfc88a Mon Sep 17 00:00:00 2001 From: Alex Miller Date: Tue, 26 Jun 2018 11:34:11 -0500 Subject: [PATCH] CLJ-2026 Prevent concurrent loads in dynaload Signed-off-by: Alex Miller --- src/main/clojure/clojure/spec/gen/alpha.clj | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/clojure/clojure/spec/gen/alpha.clj b/src/main/clojure/clojure/spec/gen/alpha.clj index ed92ebf..c35f9ff 100644 --- a/src/main/clojure/clojure/spec/gen/alpha.clj +++ b/src/main/clojure/clojure/spec/gen/alpha.clj @@ -12,11 +12,14 @@ (alias 'c 'clojure.core) +(defonce ^:private dynalock (Object.)) + (defn- dynaload [s] (let [ns (namespace s)] (assert ns) - (require (c/symbol ns)) + (locking dynalock + (require (c/symbol ns))) (let [v (resolve s)] (if v @v