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

482 Commits

Author SHA1 Message Date
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
Oliver Kowalke
b3660a3432 reorder member variables of context
- member hooks must be destroyed before execution_context
- otherwise an segementation fault is caused
- destruction of execution_context deallocates stack on which
  the member variables of context are allocated
2015-09-20 11:25:32 +02:00