Commit Graph

328 Commits

Author SHA1 Message Date
Oliver Kowalke
d8124ab12f disable section 'installing' at first 2016-02-16 08:12:33 +01:00
Oliver Kowalke
8536cdd8fe migrate a running fiber (not thread) 2016-02-16 08:10:17 +01:00
Nat Goodspeed
de4b03cb21 Tweak new wording in Rationale section.
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.
2016-02-15 20:31:52 -05:00
Nat Goodspeed
ea0c16080b A few more documentation-related edits 2016-02-15 17:12:56 -05:00
Nat Goodspeed
87551c5419 Snapshot of ongoing pass through Fiber documentation.
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.
2016-02-11 11:27:26 -05:00
Nat Goodspeed
963ab8a14a Clarify timed_mutex::try_lock*() error conditions. 2016-02-10 00:36:53 -05:00
Nat Goodspeed
3910baa6c8 Fix minor typo: 'an' execution context. 2016-02-10 00:28:47 -05:00
Nat Goodspeed
60e9a688ac Flesh out explanations of sched_algorithm::suspend_until(), notify().
Document boost::fibers::scheduler::ready_queue_t and expand on the
context::ready_link(), ready_unlink() and ready_is_linked() methods.

Explain migrate() restrictions on is_main_context() and
is_dispatcher_context() context instances.
2016-02-10 00:15:26 -05:00
Nat Goodspeed
900a367f92 Clarify that fiber_interrupted on thread's main fiber could terminate. 2016-02-09 21:01:21 -05:00
Nat Goodspeed
fa9cf0d0d2 Clarify disposition/propagation of fiber_interrupted exception.
There's a blanket statement under 'Exceptions' that any exception not caught
by a running fiber will cause the program to terminate. fiber_interrupted is
an exception to this rule: that exception will terminate the fiber, but not
the whole program.

Explain that when a fiber running packaged_task is terminated by
fiber_interrupted, and another fiber calls future::get() on the future from
that packaged_task, fiber_interrupted will be rethrown regardless of
disable_interruption. This is implicit in existing material, but worth making
explicit.

Explicitly state that a thread's main fiber may call (e.g.) this_fiber::yield().

[un]bounded_channel::try_{push,pop}() are not interruption_points. Remove them
from the big list.

Semantics of operator<(fiber, fiber) depend solely on operator<(fiber::id,
fiber::id). Restating semantics of the latter function not needed.

Add a note clarifying the phrase "timeout-related exceptions."
2016-02-09 20:26:04 -05:00
Nat Goodspeed
8f62e85583 Mention (with link) fiber migration in Overview section. 2016-02-09 20:22:32 -05:00
Nat Goodspeed
877baa7c8b Use ["text] template to replace "quotes" with curly double quotes. 2016-02-09 20:19:51 -05:00
Nat Goodspeed
4146812990 Add 'Installing and Running Tests' section.
Add ["text] macro for enclosing "text" in curly double quotes.
2016-02-09 20:14:45 -05:00
Nat Goodspeed
f42fdca00f Use same .qbk source for condition_variable and condition_variable_any.
Wrap the full descriptive text for both classes in a QuickBook template
parameterized with class name and appropriate substitutions for the (few)
differences between the two classes.
2016-02-08 19:44:54 -05:00
Nat Goodspeed
00cad4c187 Fix argument syntax for a member_link template invocation. 2016-02-08 16:00:04 -05:00
Nat Goodspeed
32f11ec4c6 Eliminate ref to stack-allocator concept within heading that defines it.
This produced QuickBook warnings. Clean up those warnings.
2016-02-08 15:58:42 -05:00
Nat Goodspeed
3b9e9a3a56 Snapshot of documentation update for 2016 review.
Note effect of BOOST_USE_SEGMENTED_STACKS if StackAllocator is not explicitly
passed.

Introduce function_heading_for QuickBook template to allow separate
descriptions of swap(fiber), swap(packaged_task) and swap(promise).

Document async() using C++14 std::result_of_t and std::decay_t, aligning with
std::async() documentation.

Rework when_any / when_all examples to use unbounded_channel throughout, since
we always close() the channel after the first value anyway. bounded_channel
doesn't really add much value here.

Make wait_first_outcome_impl() infer its channel pointer type. That way we can
reuse that function instead of coding a separate wait_all_until_error_impl(),
which differs only in using the nchannel facade instead of directly pushing to
unbounded_channel.

Explain use of std::bind() to bind a lambda.

Use a more nuanced discussion of promise lifetime in write_ec() example
function.

Use condition_variable::wait(lock, predicate) in a couple places in
work_sharing.cpp example.
2016-02-06 23:17:04 -05:00
Oliver Kowalke
81ac20b3dc remove autoreset_event 2016-01-24 16:12:44 +01:00
Oliver Kowalke
a36d229000 update docu 2016-01-20 19:45:14 +01:00
Oliver Kowalke
1f33787ade update docu 2016-01-20 19:42:40 +01:00
Oliver Kowalke
34be91cb3c update docu migration 2016-01-17 21:08:29 +01:00
Oliver Kowalke
aaf9dde6eb docu 2016-01-14 20:20:09 +01:00
Oliver Kowalke
d541e88a4b update documentation 2015-12-29 15:04:13 +01:00
Oliver Kowalke
f9c5075e10 update docu 2015-12-12 23:32:28 +01:00
Oliver Kowalke
ab2d0ae52e documentation updated 2015-12-04 18:26:49 +01:00
Oliver Kowalke
abe114ad81 segmented-stacks=on -> only segmented_stack is available 2015-10-18 19:21:45 +02:00
Oliver Kowalke
d66575e2e6 fiber_manager renamed to scheduler 2015-09-07 17:35:37 +02:00
Oliver Kowalke
6499bb07e7 fiber_context renamed to context 2015-09-07 17:23:59 +02:00
Oliver Kowalke
26ea3aa41c fix performace footnote issue 2015-09-05 15:29:42 +02:00
Oliver Kowalke
c4cfef7148 fix documentation issue related to footnote in table 2015-09-05 15:24:30 +02:00
Oliver Kowalke
2dbdd73e6e fix performance tests for std::thread 2015-09-05 15:21:43 +02:00
Oliver Kowalke
f8c97ffa16 initialize duration with zero 2015-09-05 13:49:29 +02:00
Oliver Kowalke
2e26806bb3 update performance tests and correct values in performance docu 2015-09-05 13:41:03 +02:00
Oliver Kowalke
c24c73dc11 documentation: hint for stack allocation in performance tests 2015-09-03 20:28:08 +02:00
Nat Goodspeed
d653cbdcc6 Finish proofreading pass.
Add a note to the condition_variable::wait_for(..., pred) overload.

fiber_specific_ptr::reset() has no default argument.

Remove mention of launch policy deferred, since no API accepts a launch
policy argument.

Copy construction or copy assignment of a shared_future leaves other.valid()
unchanged. It won't be 'true' unless it was 'true' before.

Mention that [shared_]future::get_exception_ptr() does not invalidate.

Note that 'blocks' and 'suspends' are used interchangeably.

Add some cross-references; add link to std::allocator_arg_t. Clarify the
cross-reference to the paragraph describing BOOST_FIBERS_NO_ATOMICS.

Reformat some overly-long source lines.
2015-09-03 09:16:09 -04:00
Nat Goodspeed
b465af2c39 Merge branch 'develop' of github.com:olk/boost-fiber into develop 2015-09-02 16:59:44 -04:00
Nat Goodspeed
abc1aa610e Proofreading pass continues through stack allocation. 2015-09-02 16:59:06 -04:00
Oliver Kowalke
a173c047a6 update documentation 2015-09-02 19:41:08 +02:00
Nat Goodspeed
2119ead28d Add note about this_fiber::properties<>() possibly yielding. 2015-09-02 12:07:57 -04:00
Nat Goodspeed
227b621e43 Continuing proofreading pass 2015-09-01 21:07:53 -04:00
Nat Goodspeed
aeaef6510f Reverse advice about when to set the properties for a new fiber.
Change which example code we show for this_fiber::properties<>() and
fiber::properties<>().
2015-09-01 19:55:33 -04:00
Nat Goodspeed
1007d7db6d Remove fiber::properties<>() requirement to have been scheduled once.
Since instantiating a fiber object immediately passes it to the scheduler,
it should be impossible to violate that precondition.
2015-09-01 19:54:55 -04:00
Oliver Kowalke
847d84e50e Merge pull request #59 from nat-goodspeed/develop
Notes about fiber launch and barrier awakening.
2015-09-01 17:41:26 +02:00
Oliver Kowalke
82143be5aa update documentation + formating 2015-09-01 17:32:07 +02:00
Nat Goodspeed
518709249b Merge branch 'develop' of github.com:olk/boost-fiber into develop 2015-09-01 11:26:36 -04:00
Nat Goodspeed
90d8e059f0 Notes about fiber launch and barrier awakening. 2015-09-01 11:25:36 -04:00
Oliver Kowalke
fefffd37eb update documentation 2015-09-01 17:17:38 +02:00
Oliver Kowalke
d15ea79bfa Merge pull request #58 from nat-goodspeed/develop
Start of proofreading pass
2015-09-01 07:59:02 +02:00
Oliver Kowalke
e91bbf1274 doucmentation: fix references to files in performance.qbk 2015-09-01 06:39:50 +02:00
Nat Goodspeed
c6ccbbc112 Add footnote about yield() being insufficient to interrupt a detached fiber. 2015-08-31 20:30:57 -04:00
Nat Goodspeed
f5c153bf2c Merge branch 'develop' of github.com:olk/boost-fiber into develop 2015-08-31 20:12:13 -04:00
Nat Goodspeed
f3d80ef589 Update some remarks about Asio; add cross-references. 2015-08-31 20:11:05 -04:00
Oliver Kowalke
6a1230f02f fix formating in documentation 2015-08-31 21:32:12 +02:00
Nat Goodspeed
d8f82dfb09 Fix table descriptions, appending source-file links below each.
Too bad we can't embed such links within a table description.
2015-08-31 12:41:50 -04:00
Nat Goodspeed
b81a65c566 Add note about interrupting detached fiber at main-fiber shutdown. 2015-08-31 12:34:38 -04:00
Nat Goodspeed
58fa3add01 Change set_scheduling_algorithm() to use_scheduling_algorithm<>(). 2015-08-31 12:21:53 -04:00
Nat Goodspeed
23bcafa0be Add note about barrier reset behavior. 2015-08-31 12:03:52 -04:00
Nat Goodspeed
62d7060475 Discuss destroying future before corresponding promise::set_value(). 2015-08-31 11:44:17 -04:00
Nat Goodspeed
b491696b54 Clarify that neither ~future() nor ~shared_future() blocks. 2015-08-31 11:37:42 -04:00
Nat Goodspeed
e3bb470376 Fill in section on adapting to nonblocking I/O. 2015-08-31 11:29:26 -04:00
Nat Goodspeed
2ed2bb4827 Add when_all_members() description. 2015-08-31 10:38:40 -04:00
Nat Goodspeed
f15fccb4b9 Add wait_all_collect_errors() description. 2015-08-31 10:08:31 -04:00
Nat Goodspeed
cc8acb1fee Add wait_all_until_error(), wait_all_until_error_source() description. 2015-08-31 10:00:38 -04:00
Nat Goodspeed
56191d5190 Add wait_all_values(), wait_all_values_source() description. 2015-08-31 08:15:06 -04:00
Nat Goodspeed
5cb215f741 Add wait_all_simple() description. 2015-08-30 20:49:45 -04:00
Nat Goodspeed
6d8821cf0b Add cross-references between when_any examples. 2015-08-30 20:12:22 -04:00
Nat Goodspeed
53127efe42 Add wait_first_value_het() description. 2015-08-30 19:56:40 -04:00
Nat Goodspeed
7e9213779e Break 'when_any' etc. into subsections.
This puts subsection entries into the table of contents.
2015-08-30 19:39:50 -04:00
Nat Goodspeed
ec251c3c02 Add wait_first_success() description. 2015-08-30 19:28:44 -04:00
Nat Goodspeed
bed11fe0a1 Add wait_first_outcome() description. 2015-08-30 18:42:50 -04:00
Nat Goodspeed
93a73835b8 Add [mdash] template and use it to replace --.
Also place an anchor concerning uncaught exceptions.
2015-08-30 18:36:10 -04:00
Nat Goodspeed
70b79515bf Correct phrasing for [xchannel_push_effects] template.
Affects wording for unbounded_channel::push(), bounded_channel::push().
2015-08-30 18:27:06 -04:00
Nat Goodspeed
4d1984e490 Add warning about tying lifespan of barrier to any waiting fiber. 2015-08-30 08:21:26 -04:00
Nat Goodspeed
455b160aad Add wait_first_value() description. 2015-08-29 21:34:18 -04:00
Nat Goodspeed
a8debb9201 Add first when_any passage (wait_first_simple())... work in progress. 2015-08-29 19:42:53 -04:00
Nat Goodspeed
8e21537c3e Recommend std::unique_lock instead of std::lock_guard for mutex.
The condition_variable examples spoke about std::lock_guard. But this doesn't
work in practice, as lock_guard has no unlock() method. Use unique_lock
instead, as test_condition.cpp does.
2015-08-25 12:56:53 -04:00
Oliver Kowalke
91555307e5 fix typo in documentation 2015-08-24 19:52:26 +02:00
Oliver Kowalke
de8feb7ff9 documentation: add link to boost.context for WinFiber support 2015-08-24 17:40:27 +02:00
Nat Goodspeed
1e3e2b8887 Add callbacks.qbk about interfacing Fiber with async callbacks.
This covers both generic callbacks (adapt_callbacks.cpp,
adapt_method_calls.cpp) and custom Asio completion tokens (yield.hpp,
promise_completion_token.hpp, detail/yield.hpp, detail/promise_handler.hpp).
Mark up the relevant source files to provide code snippets for callbacks.qbk.
2015-08-24 09:28:16 -04:00
Nat Goodspeed
99db8d50a8 Add section about integration with another main loop.
Asio integration may be a much larger topic, per email.
2015-08-19 06:18:08 -04:00
Nat Goodspeed
a2b18c51de Fix cross-references to other Boost libraries, per Paul Bristow.
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.
2015-08-17 08:26:07 -04:00
Nat Goodspeed
42cfefa25f Fix [@path] links referencing .cpp files, per Paul Bristow. 2015-08-17 08:14:13 -04:00
Nat Goodspeed
fd9f16776a Flesh out Customization section with step-by-step directions.
Mark up examples/priority.cpp with code snippets for use in Customization.

Also clarify the effect of changing wait_interval().
2015-08-16 16:38:21 -04:00
Nat Goodspeed
95cc663e43 Correctly describe bounded_channel's behavior with lwm items.
I originally assumed that a blocked bounded_channel::push() would only unblock
once the number of items in the channel dropped _below_ lwm, and described it
that way. But in fact the push unblocks as soon as the number of items in the
channel drops as low as lwm. Update documentation accordingly.
2015-08-15 11:20:19 -04:00
Nat Goodspeed
7a7e10295d Track renamed rationale.qbk. Move it just after overview.qbk. 2015-08-14 11:22:13 -04:00
Nat Goodspeed
666ada61ec Review rationale.qbk. 2015-08-14 11:21:42 -04:00
Nat Goodspeed
e08611555b Rename rational.qbk to rationale.qbk. 2015-08-14 11:10:44 -04:00
Nat Goodspeed
7c7bb2a6d1 Consolidate performance tables.
Make separate columns for Fiber with default synchronization and Fiber
compiled with BOOST_FIBERS_NO_ATOMICS.

Attempt to link tables to corresponding source files. Attempt does not yet
appear successful.
2015-08-13 17:40:42 -04:00
Nat Goodspeed
d1df99fab1 A couple small edits to fls.qbk. 2015-08-13 15:23:40 -04:00
Nat Goodspeed
90ea0e30c4 Update packaged_task documentation.
Describe conventional usage of packaged_task.

Remove documentation for removed members operator safe_bool() and operator!().
2015-08-13 15:17:53 -04:00
Nat Goodspeed
4d36df2085 Proofread new discussion of fiber migration in Rationale. 2015-08-13 07:38:30 -04:00
Oliver Kowalke
5112f9b4b5 documentation: add notice why fiber migration is not supported
- interaction of TLS and coroutines/fibers
- NUMA architecutes and memory latency
2015-08-13 09:47:52 +02:00
Nat Goodspeed
a249f98f14 Reconcile promise.qbk with current implementation.
Add a cross-reference to shared state.

Remove doc for operator safe_bool() and operator!().

Clarify that set_exception() accepts specifically std::exception_ptr.
2015-08-12 20:35:05 -04:00
Nat Goodspeed
bd8e43ffa7 Merge branch 'develop' of github.com:olk/boost-fiber into develop 2015-08-12 16:35:08 -04:00
Nat Goodspeed
a0490413cd Further work on futures documentation.
Explain "shared state", and provide links to the explanation wherever it's
referenced.

We don't need the doc to enumerate 'R& future<R&>::get()' or 'void
future<void>::get()' separately from 'R future<R>::get()': all three
specializations are exactly as the reader expects, given the generic
template (unlike shared_future, where it's useful to spell them out).

Encapsulate some of the necessary redundancies between future and
shared_future documentation.

Explain the effect of promise::set_value() vs. promise::set_exception() on
each of [shared_]future::get(), get_exception_ptr(), wait(), wait_for() and
wait_until().

Add get_exception_ptr() method to shared_future exposition class.

Clarify distinction between shared_future move assignment vs. copy assignment.

Document that async() is now variadic. Document its StackAllocator overload,
and the effect of passing StackAllocator. Remove warning about launch policy
'deferred' since async() has no launch policy parameter.
2015-08-12 16:32:54 -04:00
Oliver Kowalke
2fcf006f90 fix docu 2015-08-12 19:40:09 +02:00
Nat Goodspeed
3d945b76bd Proofread today's documentation updates. 2015-08-08 11:03:47 -04:00
Oliver Kowalke
dc8af4ea7a documentation: remove refrence to boost.chrono ad boost.move 2015-08-06 17:21:29 +02:00
Oliver Kowalke
7c25c83465 (un)bounded_channel: remove is_empty()/is_closed()/is_full() 2015-08-05 19:59:47 +02:00
Oliver Kowalke
236494717f documentation: add comment regarding to migration of fibers 2015-08-05 19:59:22 +02:00
Nat Goodspeed
1897a2a9fc Explain that is_closed() doesn't imply is_empty(). 2015-08-05 07:51:10 -04:00
Oliver Kowalke
4cdb326754 documentation: link to supported architectures 2015-08-04 20:00:07 +02:00
Oliver Kowalke
ac691acce9 documentation: tested compilers 2015-08-04 19:54:57 +02:00
Oliver Kowalke
f456902492 add test for bounded_channel (basics) 2015-08-02 21:17:04 +02:00
Oliver Kowalke
f275125b93 fixes for unbounded_channel 2015-08-02 20:48:52 +02:00
Nat Goodspeed
23434ca2e2 Tweaks to new documentation 2015-07-29 09:21:49 -04:00
Oliver Kowalke
7a792810c9 documentation: some notes to boost.asio integration 2015-07-29 12:24:00 +02:00
Oliver Kowalke
5feef62a49 documentation: add description for mutext types 2015-07-29 12:13:33 +02:00
Oliver Kowalke
b8e2520b29 documentation: formating 2015-07-29 11:48:42 +02:00
Oliver Kowalke
4140e10330 this_fiber::yield() is not an interruption point 2015-07-29 11:47:17 +02:00
Oliver Kowalke
37b22812f8 documentation: note about thread-safe synchronization
- note added to section 'Synchronization"
2015-07-29 11:35:01 +02:00
Oliver Kowalke
5c9cbd0307 documentation: add missing function descriptions 2015-07-29 11:30:43 +02:00
Oliver Kowalke
88d44ffee6 documentation: fix fals function-links in interruption points 2015-07-29 11:19:18 +02:00
Oliver Kowalke
2cbe22d8af documentation: add free function wait_interval()
- wait_itneval() sets/returns the time interval the thread is set to
sleep if not fiber is ready to run
2015-07-29 11:18:09 +02:00
Oliver Kowalke
3dbca594df documentation: add missing interruption points in list 2015-07-29 10:59:07 +02:00
Oliver Kowalke
2d07f7b47b documentation: future throw fiber_interrupted 2015-07-29 10:58:26 +02:00
Oliver Kowalke
d5858a2677 documentation: remove invalid functions 2015-07-29 10:38:42 +02:00
Oliver Kowalke
1c139895e0 documentation: rename queue.qbk -> channel.qbk 2015-07-29 10:25:18 +02:00
Oliver Kowalke
519a8924a9 documentation: barrier:wait() is interruption point 2015-07-29 10:20:01 +02:00
Oliver Kowalke
caf55428a1 documentation: fiber::join() asserts on not-a-fiber 2015-07-29 10:12:31 +02:00
Nat Goodspeed
e1c9b2b54c Make Rationale section reference new BOOST_FIBERS_NO_ATOMICS passage.
Tweaks to new wording.
2015-07-28 22:31:35 -04:00
Nat Goodspeed
dbca64d7d0 Merge branch 'develop' of github.com:olk/boost-fiber into develop 2015-07-28 22:07:13 -04:00
Nat Goodspeed
ac248e75f8 Couple tweaks to futures.qbk. 2015-07-28 22:06:44 -04:00
Oliver Kowalke
b63f95758d documentation: formating of code in scheduler.qbk 2015-07-28 18:24:25 +02:00
Oliver Kowalke
161f2a134c documentation: default scheduler is not heap-allocated
- round_robin, the default scheduler, is created at thread-creation
  as thread-local, local static
2015-07-28 18:20:31 +02:00
Oliver Kowalke
1413406fab documentation: ready_fibers() returns zero if scheduler has no fibers 2015-07-28 17:22:12 +02:00
Oliver Kowalke
6740de6761 documentation: synch. objects are threadsafe per default
- lib uses atomics to safely synchronize objects running in
different threads
- use BOOST_FIBERS_NO_ATOMICS to remove safety
2015-07-28 09:57:00 +02:00
Oliver Kowalke
3fac431abc documentation: this_fiber::yield() is a interruption point
- this_fiber::yield() calls fiber_manager::yield() that calls
fiber_manager::run() -> interruption point
2015-07-28 09:51:58 +02:00
Oliver Kowalke
350a26b27a documentation: cycles of fiber switch
- a context switch between fibers costs less than 100 cycles
2015-07-28 09:20:27 +02:00
Nat Goodspeed
018972f69a Describe bounded_channel::pop() et al. same as unbounded_channel.
Well, almost the same: bounded_channel pop operations include the note about
unblocking blocked push operations. Parameterize xchannel_pop (et al.) to
allow this divergence between unbounded_channel and bounded_channel pop
methods.
2015-07-22 08:24:17 -04:00
Nat Goodspeed
0004ac676f Fix "enchanneled"/"dechanneled". Encapsulate some redundant wording.
The descriptions of [un]bounded_channel::push() and the other push variants
are very similar, and must be kept consistent. Similarly, all the pop variants
must be kept consistent. Use QuickBook templates to supply much of the wording
for these methods.
2015-07-21 10:44:49 -04:00
Nat Goodspeed
a4de0bb7a5 More documentation.
Add note explaining why synchronization objects can neither be moved nor
copied.

Introduce line breaks for some code lines that get broken strangely by doc
toolchain.

Eliminate reference to mutex::scoped_lock.
2015-07-20 09:40:01 -04:00
Nat Goodspeed
3674114094 Merge branch 'develop' of github.com:olk/boost-fiber into develop 2015-07-19 23:11:02 -04:00
Nat Goodspeed
1dadc51ec4 Add reference documentation for custom scheduling classes.
Also resolve certain previously-dangling internal documentation
cross-references: custom, synchronization, scheduling, stack.

Add documentation placeholders for mutex (and friends) lock(), try_lock(),
unlock() methods.

Add documentation placeholders for future (and shared_future)
get_exception_ptr() methods.

Remove documentation for obsolete future (and shared_future) swap(), operator
safe_bool() and operator!() methods.
2015-07-19 22:57:56 -04:00
Nat Goodspeed
bbdd101393 Snapshot of incomplete documentation review. 2015-07-10 09:47:11 -04:00
Oliver Kowalke
e7b1ee131c add function ready_fibers() 2015-07-03 18:03:14 +02:00
Oliver Kowalke
5d18cd5a4e add interruption point after fiber_manager::run()
- functions fiber_manager::join()/fiber_manager::yield()/fiber_manager:.wait()/fiber_manager_wait_until()
  check for interrption of the current fiber
2015-06-21 10:53:37 +02:00
Oliver Kowalke
6c35324727 use atomics per default
- atomics can be disable using BOOST_FIBERS_NO_ATOMICS compiler flag
2015-06-20 21:31:34 +02:00
Oliver Kowalke
20d08d98cd enable atomics with BOOST_FIBERS_USE_ATOMCIS 2015-06-19 21:39:34 +02:00
Nat Goodspeed
050d974e5e Merge branch 'develop' of github.com:olk/boost-fiber into develop 2015-06-14 21:14:42 -04:00
Nat Goodspeed
2946b35b0d Fix minor Quickbook syntax error. 2015-06-14 21:14:02 -04:00
Oliver Kowalke
5f2c8e47d4 update documentation: using Windows Fiber API 2015-06-06 09:02:01 +02:00
Oliver Kowalke
ca7e8be37c update docu 2015-05-23 18:27:08 +02:00
Nat Goodspeed
77a443b03b Merge branch 'develop' of github.com:olk/boost-fiber into sched-props-dev 2015-05-11 05:51:14 -04:00
Nat Goodspeed
2687814477 Merge branch 'develop' of github.com:olk/boost-fiber into sched-props-dev
Resolved conflicts:
	doc/condition_variables.qbk
	examples/cpp03/migration/workstealing_round_robin.cpp
	examples/cpp03/migration/workstealing_round_robin.hpp
	include/boost/fiber/algorithm.hpp
	include/boost/fiber/bounded_queue.hpp
	include/boost/fiber/detail/fiber_base.hpp
	include/boost/fiber/detail/fifo.hpp
	include/boost/fiber/detail/waiting_queue.hpp
	include/boost/fiber/detail/worker_fiber.hpp
	include/boost/fiber/fiber.hpp
	include/boost/fiber/fiber_manager.hpp
	include/boost/fiber/fixedsize_stack.hpp
	include/boost/fiber/operations.hpp
	include/boost/fiber/round_robin.hpp
	include/boost/fiber/unbounded_queue.hpp
	src/detail/worker_fiber.cpp
	src/fiber.cpp
	src/fiber_manager.cpp
	src/round_robin.cpp
2015-05-10 22:03:35 -04:00
Oliver Kowalke
e1bd9b8151 docu 2015-04-18 13:23:08 +02:00
Oliver Kowalke
266ae8dc4b update docu 2015-02-19 19:07:46 +01:00
Oliver Kowalke
5756de290c docu 2015-02-15 19:54:43 +01:00
Oliver Kowalke
3b9382f8df update docu 2015-02-14 11:11:11 +01:00
Oliver Kowalke
13bf486fea update stack-allocators 2015-02-06 18:29:26 +01:00