Add a link to the section "No Spurious Wakeups" in the condition_variable
section.
Make a pass over "migrating fibers between threads," adding a link to the
whole new section on that same topic.
Highlight predicate condition_variable::wait() method in condition_variable
front matter.
Rewrite the explanation of wait()'s Precondition.
Add a condition_variables subsection about no spurious condition_variable
wakeups. Remove "or spuriously" from wakeup conditions in wait*() methods.
First pass through "spurious wakeup" section in Rationale.
First pass through migration.qbk. Use lock_t throughout work_sharing.cpp,
instead of lock_t, lock_count and explicit std::unique_lock<std::mutex>
declarations. Unify treatment of main and dispatcher fibers.
Clarify thread-safety requirements on sched_algorithm::notify() and
suspend_until().
Clarify disable_interruption when rethrowing fiber_interrupted.
Consolidate future<T>::get(): returns T whether T is R, R& or void.
Mention nesting of disable_interruption (which matters) versus nesting of
restore_interruption (which doesn't). Mention that a disable_interruption
constructed within the scope of another disable_interruption is a no-op, both
itself and when passed to restore_interruption.
When packaged_task::operator()() stores a value or an exception, state "as if"
by promise::set_value() or set_exception(): the shared state is set ready.
Similarly for ~packaged_task() and ~promise() setting broken_promise.
Sprinkle links to the Allocator concept, std::allocator and
std::allocator_arg_t where referenced. Similarly for StackAllocator.
Add more cross-reference links where Fiber classes and methods are mentioned.
Also things like std::unique_lock and std::mutex.
Clarify error condition for value_pop() when channel is close()d.
Since fiber_specific_ptr::release() does not invoke cleanup, it should not
throw an exception raised during cleanup.
As Paul points out, links of the form [@boost:/libs/something/index.html] (as
recommended by
http://www.boost.org/doc/libs/release/doc/html/quickbook/syntax/phrase.html#quickbook.syntax.phrase.links)
do not work when generating PDF, or even when locally generating just one
library's HTML documentation. He suggests linking explicitly to the relevant
boost.org URL. This is much more satisfying as the link can be tested.