Oliver Kowalke
5345d810a8
asio: executed dummy fiber after sleep-timer expires
2015-10-14 13:43:14 +02:00
Oliver Kowalke
51c1a96c4d
introduce attach/detach of context
2015-10-14 13:37:44 +02:00
Oliver Kowalke
7617b74e57
remove second unlinking from worker-queue in work-sharing example
2015-10-12 22:05:15 +02:00
Oliver Kowalke
7d18820962
erase terminated context from worker-queue
2015-10-12 22:03:20 +02:00
Oliver Kowalke
c738fefec7
remove spinlock protecting context lists
2015-10-12 21:59:47 +02:00
Oliver Kowalke
c07115115c
work sharing example: some modifications
2015-10-12 18:55:54 +02:00
Oliver Kowalke
0deb75a699
modify work-sharign example
2015-10-12 18:44:21 +02:00
Oliver Kowalke
1eafd3e281
support movable types
2015-10-12 10:29:14 +02:00
Oliver Kowalke
22b96fc826
assertion: main- and dispatcher cotnext must not be unwinded
2015-10-11 12:04:20 +02:00
Oliver Kowalke
380e8b30c1
use atomic coutner for remainng fibers
...
- instead of using scheduling_algorithm::has_ready_fibers() use
a atomic counter as termination indication
- scheduling_algorithm::has_ready_fibers() returns true even if
only main-context and dispatcher-context are ready -> false indication
for work-sharing example
2015-10-11 12:01:30 +02:00
Oliver Kowalke
ac167e4d36
newline in test/Jamfile added
2015-10-11 12:01:03 +02:00
Oliver Kowalke
b859f8984a
add assertion in get_next_() ensures scheduler is set
2015-10-11 08:44:06 +02:00
Oliver Kowalke
950a1571bb
do not move yielded contexts in resume_()
2015-10-11 08:43:40 +02:00
Oliver Kowalke
01dda0048f
remove std::mutex associated with yield-queue
2015-10-11 08:42:48 +02:00
Oliver Kowalke
d4c7232fa2
modify work-sharing example
2015-10-11 08:41:49 +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
ecab1c5ee6
work-sharing example
2015-10-10 21:51:14 +02:00
Oliver Kowalke
b032457397
asio examples added
2015-10-10 21:50:22 +02:00
Oliver Kowalke
ae67ee1694
asio's spawn()
2015-10-05 19:23:16 +02:00
Oliver Kowalke
5d71a4f8cd
asio examples
2015-10-04 20:08:21 +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
8662b5e253
align main context and scheduler to 64byte boundaries
2015-10-02 19:52:43 +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
275ae3b981
add additional examples
2015-09-30 17:38:44 +02:00
Oliver Kowalke
f9ffd54666
addjust calling do_invoke()
2015-09-30 17:38:12 +02:00
Oliver Kowalke
05bd4b9424
move context' from current scheduler to new, custom scheduler
2015-09-30 17:37:11 +02:00
Oliver Kowalke
48d652adab
add example wait_stuff
2015-09-29 20:27:33 +02:00
Oliver Kowalke
6d24450d40
example futures_mt removed
2015-09-29 20:26:35 +02:00
Oliver Kowalke
5ee6570363
check for unwinding on correct conntext after resume
2015-09-29 20:10:10 +02:00
Oliver Kowalke
253d981f52
examples added
2015-09-29 17:55:46 +02:00
Oliver Kowalke
4c791a3790
support for fiber properties + custom scheduler
2015-09-29 17:54:29 +02:00
Oliver Kowalke
b03ab3b3ba
disable mt-tests
2015-09-29 17:48:34 +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
a48d3a44fa
fix test
2015-09-28 18:47:51 +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
43da6f5c1c
modify test for multithreaded access to future
2015-09-27 16:16:09 +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
6e479279dd
use flag for multihtreded use of condition test
2015-09-24 17:36:41 +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
1f88055f42
enhance test
2015-09-23 17:45:13 +02:00
Oliver Kowalke
7668f86c26
more comments in scheduler.cpp
2015-09-23 17:44:50 +02:00
Oliver Kowalke
d3076f930b
some enhancements for scheduler
2015-09-23 17:44:35 +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
d0cb6e6756
some examples
2015-09-22 21:10:14 +02:00