I guess the core.async library creates a thead pool. In the library code: (defonce the-executor (Executors/newFixedThreadPool (-> (Runtime/getRuntime) (.availableProcessors) (* 2) (+ 42)) (conc/counted-thread-factory "async-dispatch-%d" true)))
On my machine it turns out to be 58. On Monday, October 13, 2014 8:59:33 AM UTC-4, Nico Swart wrote: > > Hi Laurens, > > I am pretty sure (thread ...) only executes once. To check this I > evaluated > > (dotimes [i 100] (log "foo")) > > in the REPL and the thread count goes from 23 to 80. On subsequent > evaluations of (dotimes [i 100] (log "foo")), the count stays at 78. > > > Thanks > Nico. > > > On Monday, October 13, 2014 8:43:51 AM UTC-4, Laurens Van Houtven wrote: >> >> Hi Nico, >> >> >> Just to rule out the obvious: you’re not recompiling that namespace ever >> time, right? Because if you call (thread …) a bunch of times, you’re gonna >> get a bunch of threads :-) >> >> >> cheers >> lvh >> >> >> >> On 13 Oct 2014, at 14:21, Nico Swart <jns...@gmail.com> wrote: >> >> > I am experimenting with core.async and I am using some code from a Tim >> Baldridge presentation: >> > >> > ;;;;; Logging Handler ;;;;; >> > >> > (def log-chan (chan)) >> > >> > (thread >> > (loop [] >> > (when-let [v (<!! log-chan)] >> > (println v) >> > (recur))) >> > (println "Log Closed")) >> > >> > >> > (close! log-chan) >> > >> > (defn log [msg] >> > (>!! log-chan msg)) >> > >> > (log "foo") >> > >> > If one executes (log "foo") a number of times the thread count of the >> process increases every time this function is called. My expectation >> > was that only one extra thread will be created in this code. Watching >> the number of threads in Windows task manager, the threads of the process >> > was 28, but after calling this function a number of times, the count >> was up to 93. Is this expected behaviour ? >> > >> > >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups "Clojure" group. >> > To post to this group, send email to clo...@googlegroups.com >> > Note that posts from new members are moderated - please be patient with >> your first post. >> > To unsubscribe from this group, send email to >> > clojure+u...@googlegroups.com >> > For more options, visit this group at >> > http://groups.google.com/group/clojure?hl=en >> > --- >> > You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an email to clojure+u...@googlegroups.com. >> > For more options, visit https://groups.google.com/d/optout. >> >> -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.