If a thread becomes truly uncooperative (e.g. infinitely blocked or 
looping), is there any safe way to definitely kill it and recover its 
resources cleanly?  A consumer can deref with timeout, or take from channel 
with timeout, which protects the consumer.  But I'm not clear if that will 
do anything to clean up the state of the producer, which I presume will 
eventually degrade the system if threads or memory usage accumulate.

The concrete example in this case is that there are some types of weird 
HTTP failures/degradations that `clj-http` can't gracefully timeout/catch 
from, so it just hangs.  We're hoping to wrap this in some kind of process 
isolation that if _any_ type of error prevents returning a result within a 
timeout, the whole thing gets destroyed and cleaned up.

Any thoughts greatly appreciated.  Thank you!

- Elliot

-- 
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