Clojure does not have the ability to "treat a manually created java Thread as if it a daemon thread", so I'm pretty sure we can rule that out.
Just skimming the original code, it's processing 16M+ values. At a glance, looks like maybe the sync version doesn't hold head where maybe the async one does (via the closed over local)? On Thursday, August 9, 2018 at 8:58:23 PM UTC-5, Alan Thompson wrote: > > There is question on StackOverflow: > > > https://stackoverflow.com/questions/51776663/why-does-looping-over-a-large-amount-of-data-in-another-thread-cause-an-overacti/51777764#51777764 > > In my answer, I document how Clojure seems to tread a manually created > java Thread as if it a daemon thread, even though `(isDaemon thread)` > returns `false`. The only way to prevent early termination of the program > is via a manual `(.join thread)` call. > > This seems like it is a bug in the expected behavior re non-daemon > threads. Is this correct? > > Alan > -- 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.