title: How do you kill a core.async/thread?
body: <p>I've got some threads returned by <code>core.async/thread</code> involved in some process, which I'm about to shut down. I'm not shutting down my entire program, just these threads. How can I terminate the threads?</p>
  
  <p>The <code>.stop</code> method of the Java <code>Thread</code> class is deprecated but I'd be happy to use it, except that <code>core.async/thread</code> returns not a <code>Thread</code>, but a <code>ManyToManyChannel</code>:</p>
  
  <pre><code>user=&gt; (clojure.core.async/thread)
  #object[clojure.core.async.impl.channels.ManyToManyChannel 0x780e97c0
    "clojure.core.async.impl.channels.ManyToManyChannel@780e97c0"]
  user=&gt; (type *1)
  clojure.core.async.impl.channels.ManyToManyChannel
  </code></pre>
  
  <p>I haven't found any documentation on <code>ManyToManyChannel</code>. That sounds like a strange name for the type of a thread, so there might be something elementary here that I don't understand. But here's my current naïve, nonsensical-sounding question: How do you kill a <code>ManyToManyChannel</code>?</p>
  
  <p><code>clojure.repl/thread-stopper</code> seems to have no effect on <code>ManyToManyChannel</code>s.</p>