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 |
|
Oliver Kowalke
|
f743b63bc0
|
replace context::attach()/detach() by context::migrate()
|
2015-10-21 15:25:12 +02:00 |
|
Oliver Kowalke
|
ee2fc59ca1
|
call destructor for stored values in shared_state
|
2015-10-20 10:09:57 +02:00 |
|
Oliver Kowalke
|
11419967cd
|
condition unlocks external mutex befor context switch
|
2015-10-18 20:07:24 +02:00 |
|
Oliver Kowalke
|
8ddf96f756
|
reformating in scheudler.hpp
|
2015-10-18 20:07:01 +02:00 |
|
Oliver Kowalke
|
4710e12fe1
|
rename scheduler::re_schedule() -> scheduler::suspend()
|
2015-10-18 20:03:38 +02:00 |
|
Oliver Kowalke
|
af6ead53ae
|
static assert for linking context with a queue
|
2015-10-18 20:00:41 +02:00 |
|
Oliver Kowalke
|
abe114ad81
|
segmented-stacks=on -> only segmented_stack is available
|
2015-10-18 19:21:45 +02:00 |
|
Oliver Kowalke
|
b540e80619
|
cotnext::suspend() with default parameter nullptr
|
2015-10-18 09:23:15 +02:00 |
|
Oliver Kowalke
|
e63186adfe
|
use std::addressof() for references in shared_state<R&>
|
2015-10-17 15:17:31 +02:00 |
|
Oliver Kowalke
|
559e498982
|
context::terminate() as replacement for set_terminated_()/release()
|
2015-10-17 15:10:28 +02:00 |
|
Oliver Kowalke
|
bafd65bcf3
|
remove yield-queue + pass functor to resume-op
|
2015-10-16 21:48:57 +02:00 |
|
Oliver Kowalke
|
de076200a6
|
future: support moveable-only types
|
2015-10-14 21:03:33 +02:00 |
|
Oliver Kowalke
|
79e5776805
|
qualify functions which use intrusive-list with const and noexcept
|
2015-10-14 16:05:20 +02:00 |
|
Oliver Kowalke
|
51c1a96c4d
|
introduce attach/detach of context
|
2015-10-14 13:37:44 +02:00 |
|
Oliver Kowalke
|
c738fefec7
|
remove spinlock protecting context lists
|
2015-10-12 21:59:47 +02:00 |
|
Oliver Kowalke
|
1eafd3e281
|
support movable types
|
2015-10-12 10:29:14 +02:00 |
|
Oliver Kowalke
|
01dda0048f
|
remove std::mutex associated with yield-queue
|
2015-10-11 08:42:48 +02:00 |
|
Oliver Kowalke
|
dbfd80fb2d
|
use yield-queue because work-sharing
- yield-queue prevents resumtion of a fiber which is passed to
awakened() but has not yet suspended
|
2015-10-10 21:52:03 +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
|
4a37a15d19
|
move make_dispatcher_context() to cpp file
|
2015-10-03 09:14:33 +02:00 |
|
Oliver Kowalke
|
4cd1a910d9
|
use schwarz counter idiom for static variable initialization
|
2015-10-02 17:28:59 +02:00 |
|
Oliver Kowalke
|
20196fcd69
|
set active context to nullptr in ~scheduler()
|
2015-09-30 19:58:04 +02:00 |
|
Oliver Kowalke
|
f9ffd54666
|
addjust calling do_invoke()
|
2015-09-30 17:38:12 +02:00 |
|
Oliver Kowalke
|
4c791a3790
|
support for fiber properties + custom scheduler
|
2015-09-29 17:54:29 +02:00 |
|
Oliver Kowalke
|
a847baa932
|
link/unlink of context protected by spinlock
|
2015-09-28 19:58:22 +02:00 |
|
Oliver Kowalke
|
eb7c4249d5
|
rename managed_is_linked() -> worker_is_linked()
|
2015-09-28 19:35:59 +02:00 |
|
Oliver Kowalke
|
68f8053059
|
use do_invoke()
|
2015-09-28 18:47:59 +02:00 |
|
Oliver Kowalke
|
ef19ef9cc4
|
use auto for fiber-fn on fiber's stack
|
2015-09-27 20:40:54 +02:00 |
|
Oliver Kowalke
|
f0cd02e489
|
remove noexcept from fiber::detach()
|
2015-09-27 20:40:36 +02:00 |
|
Oliver Kowalke
|
0b4c1ae306
|
store fiber-fn on fiber's stack
|
2015-09-27 16:14:55 +02:00 |
|
Oliver Kowalke
|
73b03c1d67
|
use std::allocator_arg for execution_context ctor
|
2015-09-27 16:09:11 +02:00 |
|
Oliver Kowalke
|
fc404c58eb
|
unwind at shutdown
- scheduler holds a list of managed worker-fibers
- ~scheduler() requests stack unwinding for fibers not yet terminated
|
2015-09-24 17:35:40 +02:00 |
|
Oliver Kowalke
|
fcb981ccf7
|
pass flag_ as reference arg to lmbda for condition in autoreset_event
|
2015-09-23 17:42:17 +02:00 |
|
Oliver Kowalke
|
e38dc9b139
|
renaming of scheduler member functions
|
2015-09-22 19:30:29 +02:00 |
|
Oliver Kowalke
|
b43f288469
|
support for futures added
|
2015-09-22 19:17:08 +02:00 |
|
Oliver Kowalke
|
1b274d9b73
|
support for fiber-specific storage
|
2015-09-22 19:10:09 +02:00 |
|
Oliver Kowalke
|
38aa1f4366
|
support of detaching fibers added
|
2015-09-22 19:05:57 +02:00 |
|
Oliver Kowalke
|
6ad6579666
|
fix interruption + condition:wait()
|
2015-09-21 20:47:53 +02:00 |
|
Oliver Kowalke
|
128b534058
|
fix context
|
2015-09-21 20:34:41 +02:00 |
|
Oliver Kowalke
|
38457260bc
|
remoce noexcept specifier from context::join()
|
2015-09-21 20:34:09 +02:00 |
|
Oliver Kowalke
|
1ad58fbba1
|
add interruption
|
2015-09-21 20:18:53 +02:00 |
|
Oliver Kowalke
|
ef7daa9534
|
MSVC-fix for main_context/dispatcher_cotnext/worker_context
|
2015-09-21 20:05:04 +02:00 |
|
Oliver Kowalke
|
eec3d34fb0
|
remote ready-queue uses differrent hook than local ready-queue
|
2015-09-20 22:06:59 +02:00 |
|
Oliver Kowalke
|
7b1e7839b4
|
class bounded_channel added
|
2015-09-20 18:10:55 +02:00 |
|
Oliver Kowalke
|
b8de63af06
|
class unbounded_channel added
|
2015-09-20 18:05:05 +02:00 |
|
Oliver Kowalke
|
bba963c64c
|
class barrier added
|
2015-09-20 15:38:32 +02:00 |
|
Oliver Kowalke
|
a856a96369
|
class condtion added
|
2015-09-20 11:33:59 +02:00 |
|
Oliver Kowalke
|
33093a2122
|
add missing header in operations.hpp
|
2015-09-20 11:27:42 +02:00 |
|