62 Commits

Author SHA1 Message Date
Oliver Kowalke
3d76707ea1 fix deallocation
- ~control_block() must be run before coroutine's
  stack is destroyed
2016-01-03 21:08:52 +01:00
Oliver Kowalke
302e484e8e fix deallocating coroutine's stack 2016-01-03 21:08:52 +01:00
Oliver Kowalke
2dd07fc9de test for BOOST_NO_CXX11_CONSTEXPR 2016-01-03 21:08:52 +01:00
Oliver Kowalke
79ff178d7e no assignment of captured_context with std::tie() 2016-01-03 21:08:52 +01:00
Oliver Kowalke
57562ffb2a fix unit-tests 2016-01-03 21:08:52 +01:00
Oliver Kowalke
6796caa2c7 use of captured_context 2016-01-03 21:08:51 +01:00
Oliver Kowalke
37222c014a Update README.md 2015-12-25 17:57:59 +01:00
Rene Rivera
2b8b43fe1d Fix project name to not collide with coroutine1. 2015-12-18 14:17:35 -06:00
Oliver Kowalke
91bb5ef261 exclude ctor with forwarding-reference from overload resolution
- prevents ctor with forwarding-reference to be used a copy-ctor
2015-12-16 16:38:18 +01:00
Oliver Kowalke
df480f4d04 decay-copy coroutine-function 2015-12-15 19:15:23 +01:00
Oliver Kowalke
468a750344 update docu 2015-12-12 23:28:14 +01:00
Oliver Kowalke
57156db7bb move coroutine-function into lambda 2015-12-12 23:26:51 +01:00
Oliver Kowalke
2c2524fe8e relax to C++11 2015-12-12 19:51:45 +01:00
Oliver Kowalke
ba6ea4b7a6 C++14 polishing 2015-12-02 17:14:45 +01:00
Oliver Kowalke
53614539aa remove unwind_coroutine() 2015-11-30 20:13:00 +01:00
Oliver Kowalke
cc9d3953c7 add const to local variables that do not change in
create_control_block()
2015-11-30 19:57:23 +01:00
Oliver Kowalke
13b21858f8 replace typedef by using 2015-11-30 19:57:09 +01:00
Oliver Kowalke
7e601ba612 removed support for WINFibers 2015-11-29 16:15:26 +01:00
Oliver Kowalke
4bb8f7585f adapt new execution_context API 2015-11-29 15:39:58 +01:00
Oliver Kowalke
fe869dd847 add missing header for isdigit() in example parser 2015-10-19 11:55:27 +02:00
Oliver Kowalke
59cc5e9d6f pass data between context switch using execution_context::operator() 2015-10-19 11:34:45 +02:00
Oliver Kowalke
cfc703732a segmented-stacks=on -> only segmented_stack is available 2015-10-18 19:17:56 +02:00
Oliver Kowalke
68913206d2 adapt mods for execution_context::operator() (passing argument) 2015-10-15 17:57:47 +02:00
Oliver Kowalke
4197d019f9 apply std::allocator_arg as required by boost.context 2015-09-26 20:23:04 +02:00
Oliver Kowalke
b5e475ff36 rename callee and caller 2015-09-21 17:31:24 +02:00
Oliver Kowalke
105ad9c10d enhance tests 2015-09-21 17:31:10 +02:00
Oliver Kowalke
3219de5e0f remove example chained.cpp 2015-09-21 17:30:46 +02:00
Oliver Kowalke
f3c099d259 reduce number of execution_context a coroutine owns 2015-09-19 08:50:16 +02:00
Oliver Kowalke
698c52ee89 fix formating 2015-09-18 21:29:19 +02:00
Oliver Kowalke
7183bb6e4c add new example of chained coroutines 2015-09-18 21:23:47 +02:00
Oliver Kowalke
cd2c00c8c6 fix for update caller in pull_type::operator()/push_type::operator() 2015-09-18 20:31:21 +02:00
Oliver Kowalke
f58d7387e4 update caller in pull_type::operator()/push_type::operator() 2015-09-18 17:27:25 +02:00
Oliver Kowalke
5c65e916a7 replace decltype(auto) -> void in lambda expression 2015-09-05 07:55:15 +02:00
Oliver Kowalke
2d063abea6 fix docu 2015-09-02 19:32:06 +02:00
Oliver Kowalke
a3f88893d1 cadd note regarding to C++14 restriction 2015-06-29 17:27:38 +02:00
Oliver Kowalke
3c17c4d591 add return value specification to lambda 2015-06-29 17:10:00 +02:00
Oliver Kowalke
bf1a225780 rename asymmetric_coroutine<> to coroutine<> 2015-06-22 19:27:46 +02:00
Oliver Kowalke
adcf0aa663 add C11/14 tests for unit-test 2015-06-21 18:30:13 +02:00
Oliver Kowalke
c6dbc35bd7 define BOOST_DISABLE_ASSERTS in Jamfile
- for variant=release or optimization=speed define BOOST_DISABLE_ASSERTS
2015-06-13 08:03:49 +02:00
Oliver Kowalke
415917efd8 enable alginment of control strcutes on stack 2015-06-10 20:50:59 +02:00
Oliver Kowalke
6904693216 update documentation 2015-06-06 09:01:27 +02:00
Oliver Kowalke
ca6d6c2ec1 add preprocessor error if execution_context is not supported 2015-06-04 08:30:35 +02:00
Oliver Kowalke
bdc7cb82e5 execution_context does not track parents + no exceptions catched
- execution_context does not track parent
- execution_context calls std::terminate() if execption is thrown
- coroutine has to catch exception and store it in exception_ptr to
  rethrow it
2015-06-03 09:29:12 +02:00
Oliver Kowalke
2d5d7e4792 jump back to caller after coro-fn termination
- if the coroutine-fn terminates/finishes we have to explicitly jump
  back to the caller
- othwerwise the execution_context gets deconstructed, thus the
  coroutine will be destructed too early
2015-06-02 09:44:52 +02:00
Oliver Kowalke
bca9dd2a13 remove jump back to caller after termination
- if coroutine function terminates execution_context already jumps back
  to its parent (caller)
2015-04-03 09:56:46 +02:00
Oliver Kowalke
673b2e2878 add "Done" as output for example layout 2015-04-03 09:54:23 +02:00
Oliver Kowalke
ac27579e48 adapt new API of execution_context 2015-03-26 09:57:08 +01:00
Oliver Kowalke
23c083e374 remove std:swap() in move-ctor 2015-02-20 18:41:40 +01:00
Oliver Kowalke
d91c018653 rename execution_context::jump_to() -> execution_context::resume() 2015-02-18 18:49:43 +01:00
Oliver Kowalke
aebdd81a5d delete iteratos's post increment op. 2015-02-16 18:35:03 +01:00