If you want the real use case, check out the code @andyb and I posted in #advent-of-code. Basically, two programs (running on virtual machines) are sending messages to each other and we're modeling that with coroutines and channels. The challenge requires both programs to stop when they're "gridlocked", ie. they're each waiting for a message from the other.