&gt; &quot;Libmill is intended for writing single-threaded applications.&quot;<p>You can do concurrency on a single thread. This is the message I find it hard to get across when explaining CSP concurrency libraries.<p>Some people argue about usefulness of such libraries as being not native and leaky abstraction. I developed Go-style concurrency &quot;port&quot; to Tcl:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;securitykiss-com&#x2F;csp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;securitykiss-com&#x2F;csp</a><p>and it is one of few developed-in-house things that became the productivity booster in my toolbox.<p>The interesting thing about it is that thanks to the expressive power of Tcl I was able to port not only the semantics but also almost completely mimic Go syntax.