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
59a4317bf3
use condition_variable::wait(lk,pred)
2016-02-02 17:07:29 +01:00
Oliver Kowalke
6567fde460
add initializer brackets to yeld in example
2016-02-02 17:07:01 +01:00
Oliver Kowalke
1ace8bbb36
make async_result::get() an interruption point
2016-01-31 18:14:24 +01:00
Oliver Kowalke
3ac9dde4d0
update asio integration example
2016-01-31 16:48:04 +01:00
Oliver Kowalke
284bdf6f78
fix asio integration - skip promise_handler
2016-01-31 16:14:14 +01:00
Oliver Kowalke
62b2a52857
some fixes for asio integration - promise problematic
2016-01-31 11:00:08 +01:00
Oliver Kowalke
51f4cb1a26
update asio integration in directory examples
2016-01-29 17:04:15 +01:00
Oliver Kowalke
3cfe41c01e
fix asio/round_robin.hpp
...
block thread only in io_service::rune_one() if no fibers ready
2016-01-26 11:54:27 +01:00
Oliver Kowalke
dd661d4e5d
attempt of better integration with asio
2016-01-25 21:48:18 +01:00
Oliver Kowalke
a4c2315c54
fix examples because autoreset_event was removed
2016-01-25 21:47:58 +01:00
Oliver Kowalke
172d5569a6
fix typo in comment of example work_sharing.cpp
2016-01-20 19:44:59 +01:00
Oliver Kowalke
f01cf1daff
update migration example
2016-01-20 19:42:26 +01:00
Oliver Kowalke
34be91cb3c
update docu migration
2016-01-17 21:08:29 +01:00
Oliver Kowalke
d541e88a4b
update documentation
2015-12-29 15:04:13 +01:00
Oliver Kowalke
ff8537d153
re-enable example wait_stuff
2015-12-17 20:05:49 +01:00
Oliver Kowalke
b196c2d872
disable example wait_stuff from build
2015-12-14 20:45:46 +01:00
Oliver Kowalke
db180f08da
relax to C++11
2015-12-12 23:19:33 +01:00
Oliver Kowalke
6034c1b09b
reenable Nat's promise_handler impl
2015-12-05 15:14:54 +01:00
Oliver Kowalke
3319841788
use spinlock_lock+context instead of function<>
2015-12-03 17:57:00 +01:00
Oliver Kowalke
726d4d51b9
++14 polishing
2015-12-01 21:07:11 +01:00
Oliver Kowalke
ca655a84d9
execute func + set active fiber inside context::resume()
2015-11-22 14:28:09 +01:00
Oliver Kowalke
a71e19ec4b
fix work-stealing example
2015-11-11 07:18:32 +01:00
Oliver Kowalke
5973f6a262
add work-stealing example
2015-10-21 15:26:55 +02:00
Oliver Kowalke
f743b63bc0
replace context::attach()/detach() by context::migrate()
2015-10-21 15:25:12 +02:00
Oliver Kowalke
edd439233a
fixups for asio examples
2015-10-17 14:41:53 +02:00
Oliver Kowalke
5345d810a8
asio: executed dummy fiber after sleep-timer expires
2015-10-14 13:43:14 +02:00
Oliver Kowalke
51c1a96c4d
introduce attach/detach of context
2015-10-14 13:37:44 +02:00
Oliver Kowalke
7617b74e57
remove second unlinking from worker-queue in work-sharing example
2015-10-12 22:05:15 +02:00
Oliver Kowalke
c07115115c
work sharing example: some modifications
2015-10-12 18:55:54 +02:00
Oliver Kowalke
0deb75a699
modify work-sharign example
2015-10-12 18:44:21 +02:00
Oliver Kowalke
380e8b30c1
use atomic coutner for remainng fibers
...
- instead of using scheduling_algorithm::has_ready_fibers() use
a atomic counter as termination indication
- scheduling_algorithm::has_ready_fibers() returns true even if
only main-context and dispatcher-context are ready -> false indication
for work-sharing example
2015-10-11 12:01:30 +02:00
Oliver Kowalke
d4c7232fa2
modify work-sharing example
2015-10-11 08:41:49 +02:00
Oliver Kowalke
ecab1c5ee6
work-sharing example
2015-10-10 21:51:14 +02:00
Oliver Kowalke
b032457397
asio examples added
2015-10-10 21:50:22 +02:00
Oliver Kowalke
ae67ee1694
asio's spawn()
2015-10-05 19:23:16 +02:00
Oliver Kowalke
5d71a4f8cd
asio examples
2015-10-04 20:08:21 +02:00
Oliver Kowalke
5357f7038e
scheduling-algorithm handles empty ready-queue
...
- if dispatcher-context detects empty ready-queue
the scheduler has to be suspended till signaled or
timeout reached
2015-10-03 09:35:47 +02:00
Oliver Kowalke
275ae3b981
add additional examples
2015-09-30 17:38:44 +02:00
Oliver Kowalke
48d652adab
add example wait_stuff
2015-09-29 20:27:33 +02:00
Oliver Kowalke
6d24450d40
example futures_mt removed
2015-09-29 20:26:35 +02:00
Oliver Kowalke
253d981f52
examples added
2015-09-29 17:55:46 +02:00
Oliver Kowalke
d0cb6e6756
some examples
2015-09-22 21:10:14 +02:00
Oliver Kowalke
eafeaaae01
remove examples and tests
2015-09-16 19:12:57 +02:00
Oliver Kowalke
8c4dda107c
support signaling a fiber from another thread
...
- for this first version lockfree::queue<> is used
- maybe Dimitry Byukov's mpsc intrusive queue is better suited
2015-09-13 09:20:35 +02:00
Oliver Kowalke
070606d2d1
disable asio examples
...
- interaction with external event-loops not implemented
2015-09-11 20:45:54 +02:00
Oliver Kowalke
abd1ff524c
fixes for signaling interruption and wait
2015-09-11 18:42:16 +02:00
Oliver Kowalke
e44a41b71e
add output 'done' at the end of examples
2015-09-11 18:41:46 +02:00
Oliver Kowalke
2173200c14
example simple
2015-09-10 18:07:41 +02:00
Nat Goodspeed
c9bd8360b4
Merge branch 'develop' of http://github.com/olk/boost-fiber into develop
2015-09-09 21:47:46 -04:00