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

1391 Commits

Author SHA1 Message Date
Oliver Kowalke
fa071c27cf use SPMC (chase-lev algoritm) for ready-queue (work stealing) 2016-11-03 11:05:51 +01:00
Oliver Kowalke
03e11d6538 spinlocks refactored
- use cpu_relax() to delay (using pause and equivalent mnemonic)
- exponential backoff if lock could no be acquired
- ttas, adaptive ttas
2016-11-03 11:05:05 +01:00
Oliver Kowalke
38f1bc5945 use MPSC queue for remote-ready-queue 2016-10-30 19:41:42 +01:00
Oliver Kowalke
b53e167a68 support for channels refactored
- buffered_channel: MPMC with lock-free guarantees
- unbuffered_channel: rendezvous point
2016-10-30 19:33:49 +01:00
Oliver Kowalke
88ce345ec3 BOOST_FIBERS_NO_ATOMICS disables remote-ready-queue
- remote-ready-queu is only used to signal the readyness of a fiber
  by other threads (that to not own the signaled fiber)
2016-10-22 11:12:33 +02:00
Oliver Kowalke
b1f609ea60 Revert "macro BOOST_FIBERS_SPINLOCK_YIELD added"
This reverts commit 550c164773.

- prevent CPU burning
- pause CPU while bussy waiting (pause() ... Linux kernel cpu_relax())
  instead
2016-10-21 17:13:56 +02:00
Oliver Kowalke
39c4ec114e use std::addressof() in shared_state 2016-10-16 19:43:56 +02:00
Oliver Kowalke
550c164773 macro BOOST_FIBERS_SPINLOCK_YIELD added
- if BOOST_FIBERS_SPINLOCK_YIELD is defined,
  spinlock::lock() calls std::this_thread::yield() if busy waiting
2016-10-16 10:11:23 +02:00
Oliver Kowalke
b5b1f2dcbc splinlock based on atomic 2016-10-15 15:36:28 +02:00
Oliver Kowalke
ce962f9688 (un)bounded_channel renamed to (un)bounded_queue 2016-10-13 20:17:01 +02:00
Oliver Kowalke
a251ba3878 update docu regarding to asio examples modification 2016-10-10 11:18:02 +02:00
Oliver Kowalke
97ce37e8e8 update asio examples 2016-10-10 08:50:10 +02:00
Rene Rivera
1a6b5afa42 Add, and update, documentation build targets. 2016-10-07 23:07:33 -05:00
Oliver Kowalke
1d3fa0583d pass ecv2 as universal reference to context-fn 2016-10-07 19:53:23 +02:00
oliver Kowalke
95555e5a07 meta-info: C++11 library 2016-09-28 15:02:26 +02:00
oliver Kowalke
ce9e2bd8f0 build: apply defect macro for thread_local 2016-09-15 09:00:10 +02:00
oliver Kowalke
8497508c36 unite-tests: apply defect macro for thread_local 2016-09-15 08:59:22 +02:00
oliver Kowalke
187a45a1de update link in docu 2016-09-12 13:31:10 +02:00
Oliver Kowalke
ef485fb2b2 disable warning C4251 (MSVC) 2016-09-10 08:46:39 +02:00
oliver Kowalke
cde0791937 C++11 hint in README.md 2016-09-06 13:04:21 +02:00
oliver Kowalke
f9335eabb6 make thread-local context an impl. detail
- static thread-local variables can't be exported by DLLs
- make static thread-local variable 'active_' a member of
  context_initializer
- context_initializer is declared and defined in the compilation unit
2016-09-06 08:14:27 +02:00
oliver Kowalke
db6702cd59 apply C++11 feature checks to build/jamfile.v2 2016-09-05 09:13:28 +02:00
Oliver Kowalke
b4e27bccb1 make timepoint_less operator const 2016-09-04 10:22:46 +02:00
Oliver Kowalke
e9144fba8e remove warning in docu 2016-08-20 13:16:29 +02:00
oliver Kowalke
6a13a1e772 fix unit-tests regarding to returning moveable-only type 2016-06-27 11:15:05 +02:00
oliver Kowalke
f5dda504ae fix test/Jamfile.v2 requirements 2016-06-17 08:26:08 +02:00
oliver Kowalke
4fbded4616 add boostdoc to doc/Jamfile 2016-06-15 08:17:09 +02:00
oliver Kowalke
975b11dc25 add index.htm 2016-06-07 08:14:02 +02:00
oliver Kowalke
dfef6a9bf4 add subdir meta 2016-06-07 07:58:25 +02:00
Oliver Kowalke
ae645b20c5 Update README.md 2016-05-26 05:54:42 +02:00
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
c9fd43549b remove example work_stealing 2016-05-22 18:15:49 +02:00
Oliver Kowalke
1f81bc2a5f Merge branch 'exp' into develop 2016-05-22 07:20:22 +02:00
Oliver Kowalke
826ad9165f remove skynet_shared 2016-05-20 20:12:44 +02:00
Oliver Kowalke
b5f278df34 use std::mutex for locking operations 2016-05-20 18:34:09 +02:00
Oliver Kowalke
499aa325fd Merge pull request #87 from nat-goodspeed/exp
Fix documentation about random_chase_lev et al.
2016-05-20 18:31:17 +02:00
Nat Goodspeed
155c803075 Fix documentation about random_chase_lev et al. 2016-05-20 11:39:28 -04:00
oliver Kowalke
7f18392f25 channels: wrap atomic by BOOST_FIBERS_NO_ATOMICS 2016-05-19 07:49:05 +02:00
oliver Kowalke
9b063bb722 make refcounter for channel-nodes thread-safe 2016-05-19 07:48:57 +02:00
oliver Kowalke
e610910b1e channels: wrap atomic by BOOST_FIBERS_NO_ATOMICS 2016-05-18 09:05:58 +02:00
oliver Kowalke
726f690635 make refcounter for channel-nodes thread-safe 2016-05-18 08:33:24 +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
621de905f7 update comment 2016-05-16 14:32:38 +02:00
Oliver Kowalke
ab4381bfe2 add syknet test for chase-lev 2016-05-16 14:30:38 +02:00
Oliver Kowalke
4e581b55d7 update documentation 2016-05-16 14:26:39 +02:00
Oliver Kowalke
8bd1006634 add random_chase_lev algorithm 2016-05-16 14:25:19 +02:00
Oliver Kowalke
576880ee9a replace fast_pool_allocator by std::allocator 2016-05-13 20:16:09 +02:00