Coroutines are make up for the difficulties of using go routines.<p>Coroutines can explicitly yield control to their callers and other coroutines and send and receive data across yield points.<p><a href="https://github.com/stealthrocket/coroutine">https://github.com/stealthrocket/coroutine</a> has the code and a basic sample.