I think it's fair to say that Go was hardly the first language to implement the concept of coroutines[1]. Probably the only merit of Go here is the short and convenient name of the 'run' method.
> libmill was a project that aimed to copy Go's
> concurrency model to C 1:1 [...]
> libdill is a follow-up project that experiments with
> structured concurrency and diverges from the Go model.
http://libdill.org/documentation.html