2
0
mirror of https://github.com/boostorg/fiber.git synced 2026-02-20 14:42:21 +00:00
Commit Graph

401 Commits

Author SHA1 Message Date
Oliver Kowalke
9add30c909 synchr. non-atomics via fence 2016-05-23 18:37:35 +02:00
oliver Kowalke
d37e26cd14 apply memory ordering in detaching/attaching a context 2016-05-23 11:19:24 +02:00
oliver Kowalke
18a69a77a6 Revert "replace atomic< scheduler > by raw pointer"
This reverts commit 4c8ccf384a.
2016-05-23 10:48:50 +02:00
oliver Kowalke
4c8ccf384a replace atomic< scheduler > by raw pointer
- to synchronize, use a fence in scheduler::detach_worker_context()
  and scheduler::attach_worker_context()
2016-05-23 09:02:01 +02:00
Oliver Kowalke
1f81bc2a5f Merge branch 'exp' into develop 2016-05-22 07:20:22 +02:00
Oliver Kowalke
b5f278df34 use std::mutex for locking operations 2016-05-20 18:34:09 +02:00
Oliver Kowalke
66e61eac4b use std::mutex to protec remote-reqdy queue in scheduler 2016-05-16 21:29:25 +02:00
Oliver Kowalke
8bd1006634 add random_chase_lev algorithm 2016-05-16 14:25:19 +02:00
Oliver Kowalke
310f3ce2f2 move sched_algorithm to algo::algorithm
- new namesapce algo
- shared_round_robin with shared ready queue
2016-05-13 20:14:48 +02:00
Oliver Kowalke
e3ebf6f6ef rename "launch_policy" to "launch" 2016-05-08 10:01:52 +02:00
Oliver Kowalke
43866a4d2e fix comparasion of atomics for MSVC 2016-05-03 18:23:09 +02:00
Oliver Kowalke
968c32c842 replace context::migrate() by context::attach()/context::detach() 2016-05-02 18:56:17 +02:00
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