Great series of articles, I very much enjoy reading Martin Sustrik&#x27;s thoughts on concurrency, mainly because he has the creds to back up his criticisms. Reminds me a lot of reading Poul-Henning Kamp&#x27;s writing (the author of Varnish cache).<p>What&#x27;s most interesting to me personally is that if you squint, Martin is essentially making an argument for a low-level parallel to Java&#x27;s Thread.stop method (although in much more detail). I always thought that Java&#x27;s deprecation of Thread.stop was a huge cop-out from actually solving the underlying causes of its issues, and very disappointing. But from a high-level view, there are often differences between whether a thread should be stopped when its ready, or if a thread is no longer useful and should be terminated immediately.<p>Its also interesting that go&#x27;s solution to this is to pass a context with a &#x27;done&#x27; channel through every function call dealing with a specific session, and every time a channel is waited on you also wait on the done channel. While its an effective method, its a bit of a shame that the concept wasn&#x27;t built into go more deeply.<p>Some relevant articles:<p>- Why Thread.stop was deprecated: <a href="http:&#x2F;&#x2F;docs.oracle.com&#x2F;javase&#x2F;1.5.0&#x2F;docs&#x2F;guide&#x2F;misc&#x2F;threadPrimitiveDeprecation.html" rel="nofollow">http:&#x2F;&#x2F;docs.oracle.com&#x2F;javase&#x2F;1.5.0&#x2F;docs&#x2F;guide&#x2F;misc&#x2F;threadPr...</a><p>- Go concurrency patterns: <a href="https:&#x2F;&#x2F;blog.golang.org&#x2F;context" rel="nofollow">https:&#x2F;&#x2F;blog.golang.org&#x2F;context</a>