2
0
mirror of https://github.com/boostorg/fiber.git synced 2026-02-13 12:22:36 +00:00
Commit Graph

146 Commits

Author SHA1 Message Date
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