Yeah the problem with Go and &quot;async processes&quot; doesn&#x27;t have to do with GC -- it has to do with M:N threading.  I&#x27;m glad Rust abandoned M:N threading.<p>Though it is definitely a killer feature of Go to write in a blocking style rather than in a state machine style... but I feel that there might have been a way to do it without baking it so hard into the runtime (?).  Maybe like coroutines in Python, which run on a single thread and are optional.<p>M:N threading causes a lot of other complications too, like calling from C to Go, etc.