Oliver Kowalke
2dbea898d4
introduction of launch_policies dispatch and post
...
- dispatch: execute new fiber immediately, suspend current fiber
- post: enqueue new fiber in ready-queue, continue executing current
fiber
2016-04-28 20:35:26 +02:00
oliver Kowalke
52da1e907e
pass dispatcher-context as arg to resume()
...
- use standard way how a context is suspended and pushed to
ready-queue for dispatcher-fiber
2016-04-26 09:01:59 +02:00
oliver Kowalke
5218f46350
remove unecessary argument in scheduler::suspend()
2016-04-25 10:29:44 +02:00
Oliver Kowalke
01db63c816
at scheduler destruction join dispatcher fiber
2016-04-21 17:46:09 +02:00
oliver Kowalke
2fd3383dc6
start dispatcher-context in dtor of scheduler
2016-04-20 09:58:34 +02:00
Oliver Kowalke
57267ec957
remove support for fiber interruption
2016-04-19 18:16:31 +02:00
oliver Kowalke
5027d3526f
impl. remote-ready-queue with std::vector<>
2016-04-18 12:52:48 +02:00
Oliver Kowalke
f3f5634846
call scheduling_algorithm::notify() scheduer terminats
2016-04-17 19:46:10 +02:00
Oliver Kowalke
8d80a4503c
pass to correct scheduler
2016-04-15 22:54:45 +02:00
oliver Kowalke
f7d151ac86
do not interrupt() fibers at scheduler destruction
...
- the user is responsible that all worker fibers terminate
- dispatcher fiber must run till all worker fiber are terminated and
the the scheduler is shut down
- flag shutdown is set in ~scheduler before resuming the ready fibers
- the ready fibers must contain at least the dispatcher fiber
2016-04-14 09:14:50 +02:00
oliver Kowalke
5e3999cc5d
access correct context in killing worker-fibers
2016-04-08 14:17:59 +02:00
oliver Kowalke
45af3585db
migrate context: scheduler must be different
2016-04-08 14:02:32 +02:00
Oliver Kowalke
a48c0eb491
fix include of headers
2016-02-27 20:07:06 +01:00
Oliver Kowalke
e43cf5b1ac
enum for context types
2016-02-15 19:49:22 +01:00
Oliver Kowalke
547e19a811
adapt to template execution_context (v2)
2016-02-09 17:15:36 +01: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
59a4317bf3
use condition_variable::wait(lk,pred)
2016-02-02 17:07:29 +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
81ac20b3dc
remove autoreset_event
2016-01-24 16:12:44 +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
12554320ae
enable pre-condition in scheduler::attack_worker_context()
2015-12-27 23:22:38 +01:00
Oliver Kowalke
056a681459
fix fiber-exceptions
2015-12-26 19:52:21 +01:00
Oliver Kowalke
d316cf7afe
rename status enum of spinlock
2015-12-21 17:20:04 +01:00
Oliver Kowalke
fcdbe3bc66
e own implementation of future_errc and related
2015-12-18 20:38:23 +01:00
Oliver Kowalke
117384d839
implement condition_variable in terms of condition_variable_any
2015-12-18 07:38:42 +01:00
Oliver Kowalke
570b0a9ea9
rename condition -> condition_variable
2015-12-13 13:46:26 +01:00
Oliver Kowalke
db180f08da
relax to C++11
2015-12-12 23:19:33 +01:00
Oliver Kowalke
5b2effab58
relax to C++11
2015-12-09 19:21:25 +01:00
Oliver Kowalke
117a55d8c6
replace user-defined future_status+ future_errc by those of std
2015-12-05 20:16:07 +01:00
Oliver Kowalke
6d7b7d06c7
remove noexcept from dtor of interruption classes
2015-12-05 20:15:40 +01:00
Oliver Kowalke
e9a0d4d669
remove noexcept from dtor of context+scheduler
2015-12-05 15:14:31 +01:00
Oliver Kowalke
c8071c5373
fix data_t for MSVC 14 (initializer-list issue)
2015-12-04 18:26:49 +01:00
Oliver Kowalke
3319841788
use spinlock_lock+context instead of function<>
2015-12-03 17:57:00 +01:00
Oliver Kowalke
abbc507d13
re-factor futures
2015-12-02 21:57:27 +01:00
Oliver Kowalke
9063b8dc5b
some C++14 polishing
2015-12-02 17:19:51 +01:00
Oliver Kowalke
0519929d26
C++14 - context
2015-12-02 17:18:31 +01:00
Oliver Kowalke
f225548427
C++14 - barrier
2015-12-02 17:18:07 +01:00
Oliver Kowalke
726d4d51b9
++14 polishing
2015-12-01 21:07:11 +01:00
Oliver Kowalke
df45a33f70
C++14 - spinlock
2015-11-30 20:23:29 +01:00
Oliver Kowalke
7bd1863115
apply noexcept
2015-11-25 19:32:32 +01:00
Oliver Kowalke
a344247f07
remove forced_unwind and related functions
...
- unwinding the stack via exception is not always necessary
- usually a fiber returns from its fiber-fn (stack is already unwound)
- if a fiber has to terminate, interrupt that fiber
2015-11-25 19:30:25 +01:00
Oliver Kowalke
26227e31b2
refactor scheduler::dispatch()
2015-11-25 19:25:48 +01:00
Oliver Kowalke
6d3f00902f
use this in capture-list
2015-11-22 14:42:28 +01:00
Oliver Kowalke
ca655a84d9
execute func + set active fiber inside context::resume()
2015-11-22 14:28:09 +01:00
Oliver Kowalke
5277c51bbb
re-add previously removed context::attach()
2015-10-21 15:40:50 +02:00
Oliver Kowalke
cfc4b6f292
protect worker_queue by spinlock
2015-10-21 15:26:06 +02:00