Oliver Kowalke
732e91b634
Revert "no data transferred via continuation::resume()"
...
This reverts commit 953bcb423e .
2017-06-10 16:33:01 +02:00
Oliver Kowalke
c8f6ddc497
use conditional expression likely/unlikely
2017-06-08 23:22:09 +02:00
Oliver Kowalke
116419ccb4
mutex: loop and test in lock()
2017-06-05 16:49:43 +02:00
Oliver Kowalke
953bcb423e
no data transferred via continuation::resume()
...
- transfer from-context, ready-context, spinlock_lock via context
2017-05-29 18:13:08 +02:00
Oliver Kowalke
8c6f853201
Revert "use wait-queue based on array"
...
This reverts commit ecb87f2945 .
2017-03-17 19:57:48 +01:00
Oliver Kowalke
ecb87f2945
use wait-queue based on array
2017-03-17 17:52:44 +01:00
Oliver Kowalke
728bd776ad
rename set_ready() -> schedule()
2017-03-05 15:08:52 +01:00
Oliver Kowalke
fa95e9740f
code re-formating
2017-02-26 20:22:58 +01:00
Oliver Kowalke
24fa47a1f0
remove noexcept from mutex/timed_mutex try_lock()
2015-12-29 11:57:25 +01:00
Oliver Kowalke
056a681459
fix fiber-exceptions
2015-12-26 19:52:21 +01:00
Oliver Kowalke
3319841788
use spinlock_lock+context instead of function<>
2015-12-03 17:57:00 +01:00
Oliver Kowalke
726d4d51b9
++14 polishing
2015-12-01 21:07:11 +01:00
Oliver Kowalke
4b826c1738
protect mutex::unlock() caled by non-owning fiber
2015-10-18 20:04:11 +02:00
Oliver Kowalke
bafd65bcf3
remove yield-queue + pass functor to resume-op
2015-10-16 21:48:57 +02:00
Oliver Kowalke
a847baa932
link/unlink of context protected by spinlock
2015-09-28 19:58:22 +02:00
Oliver Kowalke
2e0d09b3c7
fix comparation of address and nullptr
2015-09-21 20:14:07 +02:00
Oliver Kowalke
22a1f1257d
some source code formating
2015-09-20 15:38:43 +02:00
Oliver Kowalke
1797badafc
fix memory ordering for release-op (spinlock/mutex/recursive_mutex)
2015-09-19 17:38:10 +02:00
Oliver Kowalke
44d4ce82e0
use atomic< context * > as owner type
2015-09-19 17:26:33 +02:00
Oliver Kowalke
3f5e076f3a
class mutex added
2015-09-19 17:01:20 +02:00
Oliver Kowalke
6d43540a29
cleanup
2015-09-15 19:15:00 +02:00
Oliver Kowalke
abd1ff524c
fixes for signaling interruption and wait
2015-09-11 18:42:16 +02:00
Oliver Kowalke
4764c1184c
signal() added
2015-09-10 19:52:08 +02:00
Oliver Kowalke
d3843efbe0
fix using intruisve::list<>
2015-09-10 18:08:10 +02:00
Oliver Kowalke
c89410dfd8
uses intrusive::list<> isntread hand-written queues
2015-09-09 19:22:54 +02:00
Oliver Kowalke
d66575e2e6
fiber_manager renamed to scheduler
2015-09-07 17:35:37 +02:00
Oliver Kowalke
6499bb07e7
fiber_context renamed to context
2015-09-07 17:23:59 +02:00
Oliver Kowalke
7233f617d7
remove class scheduler - fiber_context has static TLS
...
- detail:.scheduler was removed
- fiber_context has a static thread-local pointer to the active
fiber_context
- fiber_context has member to pointer of fiber_manager
- functions of fiber_manager are accessed only via fiber_context
- if fiber f is resumed, the fiber_manager of the current active fiber
f' is assigned to f
-> that is necessary if f was stolen form another thread
2015-09-07 11:50:01 +02:00
Oliver Kowalke
6c35324727
use atomics per default
...
- atomics can be disable using BOOST_FIBERS_NO_ATOMICS compiler flag
2015-06-20 21:31:34 +02:00
Oliver Kowalke
20d08d98cd
enable atomics with BOOST_FIBERS_USE_ATOMCIS
2015-06-19 21:39:34 +02:00
Oliver Kowalke
2002dba9d3
enable/disable atomic<> with BOOST_FIBERS_THREADSAFE
2015-06-19 18:57:23 +02:00
Oliver Kowalke
61dc492f31
some stuff/corrections
2015-06-19 18:55:02 +02:00
Oliver Kowalke
aa337b07f7
move 'fm_' - free functions into fiber_manager
2015-02-08 16:02:22 +01:00
Oliver Kowalke
27c0a78d36
allocate fiber_context on stack
2015-01-13 14:57:32 +01:00
Oliver Kowalke
654127af00
rename fiber_base -> fiber_context and move to public namespace
2015-01-04 16:05:08 +01:00
Oliver Kowalke
2f19be6d67
use C++11
2014-12-27 19:07:42 +01:00
Oliver Kowalke
7fb469cd10
some fixes
2014-09-24 19:18:44 +02:00
Oliver Kowalke
05256654da
reduce redundancy of try_lock()/lock() in mutex
2014-07-05 11:09:40 +02:00
Oliver Kowalke
91ccc91ee7
some fixes
2014-06-22 19:31:58 +02:00
Oliver Kowalke
026003bb65
use the free fm_<xyz> - functions
2014-06-17 11:51:14 +02:00
Oliver Kowalke
2d012334b1
allocate main_fiber inside synch. primitives
2014-03-22 18:22:32 +01:00
Oliver Kowalke
228aae6833
do not use reference-counting
2014-03-19 19:55:56 +01:00
Oliver Kowalke
5b6d77b6b5
renaming of fiber classes
2014-03-05 17:30:11 +01:00
Oliver Kowalke
1926a21838
some assertions added
2013-12-29 13:24:30 +01:00
Oliver Kowalke
40d469d346
let notifier for thread's initial context allocate by algoritm
2013-12-28 10:19:06 +01:00
Oliver Kowalke
2c9e034f0b
move this_thread::yield() into round_robin schedulers
2013-12-16 17:38:04 +01:00
Oliver Kowalke
d7c0d5d046
call this_thread::yield at some points
2013-12-15 20:02:06 +01:00
Oliver Kowalke
1c8cd1d880
protect mutex' with spunlock only
2013-11-05 16:13:29 +01:00
Oliver Kowalke
3eafc0725f
thread-safe mutex'
2013-10-22 14:42:01 +02:00
Oliver Kowalke
bdbe2ea1f7
mutex' call lk.unlock() instead splk_.unlock()
2013-10-18 20:29:18 +02:00