The review for the Coroutines library written by Oliver Kowalke started
September 3rd 2012, and ended on September 12th 2012. I counted 7 votes,
none of which were NO. All authors votes YES, some made additional requests.
Overall, the verdict of the community was clear:
Oliver Kowalke's Coroutines library is ACCEPTED
The discussion was lively and it touched on several points.
The Coroutines library offers enormous potential for programming regimes
such as communications software and embedded systems design. Oliver selected
a sensible granularity for his design. This granularity allows for
fine-tuning the implementations of cooperative scheduling mechanisms while
avoiding the prohibitively heavy weight of preemptive scheduling that is
found in POSIX and often in implementations of the C++11 thread support
In particular, the separation of Coroutines from Context allows for porting
to other systems with minimal effort and maximum reliability and code
Some suggestion related to the API have been made during the review, most of
which (if not all) have already been addressed. Oliver has a full list of
things and works on integrating the suggestions. Here is a short list:
- allow to specify the allocator to use for memory allocations inside the
- remove 'self' pointer and replace with TLS
- add symmetric coroutines API
- better support for generator functionality
Some of the people participating in the discussions suggested not to use the
abbreviated 'namespace coro', but to use the full 'namespace coroutines'
instead. This again is not a precondition for acceptance.
The consensus of almost everybody referring to the documentation was that it
is terse but readable and sufficient. People suggested to integrate the docs
of the old Coroutines library (written as an GSoC project by Giovanni P.
Deretta) into the documentation of the reviewed library.
I would like to thank all who participated in the discussions.