Performance
One concern with the technique I present here involves performance. Even though fibers are not as heavyweight as threads, there is still a cost involved in switching contexts. I conducted a simple test (the code is available at http://www.cuj.com/code/) to quantify the costs of fiber switching. The test comprises incrementing an integer via fiber switching and function calls. The results show that switching fiber context is roughly 5-10 times the cost of a function call. Therefore, concerns over performance wouldn't appear to invalidate the technique, though they would be a factor in performance-critical scenarios.