Pardon my ignorance, but what is the benefit of using a coroutine? I checked out the "Coroutines in C" page, and from what I saw, the resulting code was a million times uglier than the initial caller/callee setup. If the point is prettier code, this seems to fail the bill. Are there other advantages like portability, efficiency, or maintainability that this addresses, or is this just another way for one to show off his skillz?