On 9/4/2015 12:14 PM, Nat Goodspeed wrote:
Hi all,
The mini-review of Boost.Fiber by Oliver Kowalke begins today, Friday September 4th, and closes Sunday September 13th. It was reviewed in January 2014; the verdict at that time was "not in its present form." Since then Oliver has substantially improved documentation, performance, library customization and the underlying implementation, and is bringing the library back for mini-review.
I just had a quick look at the future implementation, to see if proper chrono support (one of the reasons for my previous rejection) was implemented. While `wait_for` depicts the standard signature, it does not seem `wait_until` does. There's also a great deal of code duplication for `T`, `T&` and `void` while only a handful of functions differ. This is not a sign of good design, and will make maintenance difficult. The shared state has a few functions that *must* be called while holding a lock, like `mark_ready_and_notify_`. It'd be better to make that explicitly, and preferably have the type system enforce it, as currently proving the correctness of those functions require tracing all the callers. Uses of `condition::wait` and friends manually loop, instead of leveraging the predicate based overload for readability. Finally, `std::move` the algorithm lives in `<algorithm>`, while `std::move` the utility lives in `<utililty>`. That's all for now. Regards, -- Agustín K-ballo Bergé.- http://talesofcpp.fusionfenix.com