Commit Graph

1840 Commits

Author SHA1 Message Date
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
f6fc028b7f Merge branch 'develop' of github.com:olk/boost-fiber into develop 2016-02-08 09:16:49 -05:00
Oliver Kowalke
91ece536bd provide impl for move-ops in test_async 2016-02-07 12:01:47 +01: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
778656934f captured_context renamed to execution_context (v2)
- execution_context (v2) is enabled per default
- execution_context (v1) is used for segmented stacks
2016-02-06 13:34:10 +01:00
Oliver Kowalke
12555f9561 execution_context required for segmented stacks 2016-02-06 10:21:54 +01:00
Oliver Kowalke
7e183329ee use captured_context aonly 2016-02-05 18:14:38 +01:00
Oliver Kowalke
aa0bdfffa6 fix unit-tests 2016-02-03 17:08:19 +01:00
Oliver Kowalke
da14401975 enhance tests 2016-02-03 16:56:28 +01:00
Oliver Kowalke
ea1003b48a cast function + arguments to rvalues before apply() 2016-02-03 16:55:44 +01: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
bacbb59afa pass active cotnext directly to yield() 2016-02-02 17:06:21 +01:00
Oliver Kowalke
8b3d3a195f reduce access to context::active() 2016-02-02 17:05:54 +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
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
172d5569a6 fix typo in comment of example work_sharing.cpp 2016-01-20 19:44:59 +01:00
Oliver Kowalke
1f33787ade update docu 2016-01-20 19:42:40 +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
aaf9dde6eb docu 2016-01-14 20:20:09 +01:00
Oliver Kowalke
baa2a109a1 overhead of clock not in performance output 2016-01-14 18:58:20 +01:00
Oliver Kowalke
d541e88a4b update documentation 2015-12-29 15:04:13 +01:00
Oliver Kowalke
c3e54f5dcf remove noexcept from fiber_specific_ptr ctor 2015-12-29 14:48:36 +01:00
Oliver Kowalke
6f5d2b5376 nvalid_argument and fiber_resource_error rremoved 2015-12-29 14:17:03 +01:00
Oliver Kowalke
24fa47a1f0 remove noexcept from mutex/timed_mutex try_lock() 2015-12-29 11:57:25 +01:00
Oliver Kowalke
4c05ff494d remove noexcept from timed wait-ops for mutex classes 2015-12-29 11:30:30 +01:00
Oliver Kowalke
12554320ae enable pre-condition in scheduler::attack_worker_context() 2015-12-27 23:22:38 +01:00
Oliver Kowalke
70e1d2af0b releasing fss might throw
- cleanup fucntion of fss might throw
-> remove noexcept specifier
2015-12-27 17:29:26 +01:00
Oliver Kowalke
4c95c148fc make future ctor private
- ctor creating future from future_base should be private
2015-12-27 15:13:58 +01:00
Oliver Kowalke
ed38759508 remove noexcept from new_properties() 2015-12-27 14:21:47 +01:00
Oliver Kowalke
ba49a575ce remove noexcept from channel::try_pop()
- move-op might throw
2015-12-27 14:20:46 +01:00
Oliver Kowalke
811347bce0 define own future_status 2015-12-27 14:20:26 +01:00
Oliver Kowalke
056a681459 fix fiber-exceptions 2015-12-26 19:52:21 +01:00
Oliver Kowalke
f4925c6b08 add noexcept tp try_lock_for()/try_lock_until() 2015-12-26 18:13:50 +01:00
Oliver Kowalke
8413230c04 public properties() might throw -> remove noexcept 2015-12-25 20:32:10 +01:00
Oliver Kowalke
80b281ea34 remove fiber::operator bool() 2015-12-25 20:30:03 +01:00
Oliver Kowalke
e72e4b60e1 declare own cv_status instead using std::cv_status 2015-12-21 17:21:08 +01:00
Oliver Kowalke
e39216055c specify only first item in future_errc enum 2015-12-21 17:20:38 +01:00
Oliver Kowalke
d316cf7afe rename status enum of spinlock 2015-12-21 17:20:04 +01:00
Oliver Kowalke
8ef55049c6 add precondition - lock owned - for shared_state 2015-12-21 16:57:45 +01:00
Oliver Kowalke
a964633c63 use condition-variable::wait() with predicate in channel 2015-12-21 16:44:37 +01:00