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.

Reply via email to