We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9395c10 commit 7e4ebf6Copy full SHA for 7e4ebf6
src/cider/nrepl.clj
@@ -12,6 +12,10 @@
12
"Map of `delay`s holding deferred middleware handlers."
13
(atom nil))
14
15
+(def LOCK
16
+ "Lock used to inhibit concurrent `require` of the middleware namespaces."
17
+ (Object.))
18
+
19
(defn- resolve-or-fail [sym]
20
(or (resolve sym)
21
(throw (IllegalArgumentException. (format "Cannot resolve %s" sym)))))
@@ -25,8 +29,9 @@
25
29
sym (symbol (name `~fn-name))]
26
30
(swap! DELAYS assoc sym
27
31
(delay
28
- (require `~ns)
- (resolve-or-fail `~fn-name)))
32
+ (locking LOCK
33
+ (require `~ns)
34
+ (resolve-or-fail `~fn-name))))
35
`(@(get @DELAYS '~sym) ~handler ~msg)))
36
37
(defmacro ^{:arglists '([name handler-fn descriptor]
0 commit comments