oliver Kowalke
|
fb309b8fde
|
make random number distribution static in spinlocks
|
2017-04-07 16:01:19 +02:00 |
|
oliver Kowalke
|
7e45390dc3
|
add notes to mnemonics used in cpu_relax()
|
2017-04-05 10:33:27 +02:00 |
|
oliver Kowalke
|
c3f1c54bee
|
Merge branch 'develop'
|
2017-04-04 11:40:01 +02:00 |
|
Oliver Kowalke
|
4a42f47ba9
|
cast diff of pointers to int
- the offset is stored on the stack (in front of mem-aligned context)
|
2017-04-02 21:44:39 +02:00 |
|
Oliver Kowalke
|
b3f49eb1e4
|
futex: apply INFINITE to WaitOnAddress()
|
2017-04-02 21:44:39 +02:00 |
|
Oliver Kowalke
|
e3358bb9ba
|
docu: add some notes to shared_work/work_stealing sched-algos
|
2017-04-02 21:44:39 +02:00 |
|
Oliver Kowalke
|
6f152b6e00
|
use mnemonic 'yield' only for some ARM variants
- fix #110
|
2017-04-02 21:44:39 +02:00 |
|
Oliver Kowalke
|
dca71b80c2
|
make std::uniform_int_distribution<> static in spinlocks
|
2017-04-02 17:51:55 +02:00 |
|
Oliver Kowalke
|
b445941352
|
set define for spinlock-retries of cpu_relax() to 500
|
2017-04-02 17:51:55 +02:00 |
|
Oliver Kowalke
|
feec94a38e
|
remove std::this_thread::yield() from spinlocks
|
2017-04-02 17:51:44 +02:00 |
|
Oliver Kowalke
|
aa1b082118
|
make std::uniform_int_distribution<> static in work-stealing algo
|
2017-04-01 10:23:33 +02:00 |
|
Oliver Kowalke
|
6c2f639e28
|
Merge branch 'develop'
|
2017-03-30 20:46:43 +02:00 |
|
Oliver Kowalke
|
0a6384dd77
|
fix buffered_channel synchronization
|
2017-03-30 20:46:30 +02:00 |
|
Oliver Kowalke
|
57fd49bea9
|
Merge branch 'develop'
|
2017-03-30 20:37:10 +02:00 |
|
Oliver Kowalke
|
f39520b5ae
|
fix buffered_channel synchronization
|
2017-03-30 20:36:35 +02:00 |
|
Oliver Kowalke
|
6beae49778
|
skynet: move joining fibers after reading values
|
2017-03-30 06:18:29 +02:00 |
|
Oliver Kowalke
|
efb646debe
|
use additional asserts for scheduler
|
2017-03-29 20:11:14 +02:00 |
|
Oliver Kowalke
|
6edafa63c9
|
Merge branch 'develop'
|
2017-03-27 18:06:37 +02:00 |
|
Oliver Kowalke
|
8b2cda5c15
|
documentation updated
|
2017-03-27 18:05:56 +02:00 |
|
Oliver Kowalke
|
547d64d45f
|
use single-linked instead of double-linked instrusive list
|
2017-03-27 18:05:55 +02:00 |
|
oliver Kowalke
|
38c02bdf53
|
remove alignas() from spinlock member vars
- align spinlock together with protected data
- fetch spinlock and protected member via one cacheline
|
2017-03-27 18:05:55 +02:00 |
|
oliver Kowalke
|
968d5a0d56
|
reorder member vars for context
|
2017-03-27 18:05:55 +02:00 |
|
oliver Kowalke
|
99e5301d90
|
reorder member vars for scheduler
|
2017-03-27 18:05:55 +02:00 |
|
oliver Kowalke
|
a05014978a
|
reorder member vars for condition_variable
|
2017-03-27 18:05:55 +02:00 |
|
oliver Kowalke
|
de34f08c75
|
reorder member vars for mutex types
|
2017-03-27 18:05:55 +02:00 |
|
Oliver Kowalke
|
b140113d9e
|
make scheduler member var non-atomic
- synchronize-with/happend-before via atomics in
scheduling-algorithm and queues/channels
|
2017-03-27 18:05:55 +02:00 |
|
Oliver Kowalke
|
c618d5d4a7
|
skynet performance test with 1.000.000
|
2017-03-27 18:05:55 +02:00 |
|
oliver Kowalke
|
44600bfcf5
|
wrap remote_ready_is_linked() by BOOST_FIBERS_NO_ATOMICS
|
2017-03-22 13:18:12 +01:00 |
|
oliver Kowalke
|
2bef210265
|
add addtional asserts
|
2017-03-22 13:18:12 +01:00 |
|
oliver Kowalke
|
48071238a8
|
use relaxed-ops for scheduler member variable
|
2017-03-22 13:18:11 +01:00 |
|
oliver Kowalke
|
b903128504
|
lock spinlock used in terminate()
|
2017-03-22 13:18:11 +01:00 |
|
oliver Kowalke
|
65cfbdc8cf
|
context: rename flags_ to terminated_ and make it non-atomic
|
2017-03-21 10:31:24 +01:00 |
|
oliver Kowalke
|
4e93113e41
|
unlock spinlock from ~context() in other context
|
2017-03-20 11:47:58 +01:00 |
|
oliver Kowalke
|
7e8a34ec81
|
lock spinlock in ~context() to protect wait-queue
|
2017-03-20 11:47:51 +01:00 |
|
oliver Kowalke
|
3c6da7265f
|
reorder unlinking from worker-list
- move context::worker_unlink() before context::scheduler_store()
-> unlink happens before store => other threads synchronized with
|
2017-03-20 09:51:44 +01:00 |
|
oliver Kowalke
|
afff23ff30
|
add additional asserts in scheduler + context
|
2017-03-20 09:51:37 +01:00 |
|
Oliver Kowalke
|
5d00924213
|
unbuffered_channeL: spinlocks for producer + consumer
|
2017-03-19 18:53:07 +01:00 |
|
Oliver Kowalke
|
53cbd86f5f
|
buffered_channeL: spinlocks for producer + consumer
|
2017-03-19 18:52:48 +01:00 |
|
Oliver Kowalke
|
a7058fa39a
|
add asserts to dispatch() for execution-context
|
2017-03-18 07:06:30 +01:00 |
|
Oliver Kowalke
|
f6c364614b
|
remove context_mpsc_queue
|
2017-03-18 07:06:07 +01:00 |
|
Oliver Kowalke
|
0d62d7c5d2
|
remote-ready-queue: replace context_mpsc_queue by linked-list + spinlock
|
2017-03-18 07:05:52 +01: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
|
270d6c1b39
|
remove BOOST_DISABLE_ASSERTS from performance/Jamfile
|
2017-03-17 18:54:01 +01:00 |
|
Oliver Kowalke
|
ecb87f2945
|
use wait-queue based on array
|
2017-03-17 17:52:44 +01:00 |
|
Oliver Kowalke
|
47c4f0939d
|
join fibers in skynet-test
|
2017-03-17 17:44:56 +01:00 |
|
oliver Kowalke
|
332e76ebb8
|
use steal-op. of context-queues in work_stealing
- spinlock-queue is faster than spmc-queue because
spmc-queue fails to steal a non-pinned context
|
2017-03-17 11:17:05 +01:00 |
|
oliver Kowalke
|
9535e41d06
|
context_spmc_queue with steal-op.
|
2017-03-17 11:17:05 +01:00 |
|
oliver Kowalke
|
2fe94b0efd
|
context_spinlock_queue with steal-op.
|
2017-03-17 11:17:05 +01:00 |
|
oliver Kowalke
|
9982fd229f
|
use context_spinlock_queue in work_stealing
|
2017-03-17 11:17:05 +01:00 |
|
oliver Kowalke
|
bd7a3b835f
|
context-queue protected by spinlock
|
2017-03-17 11:17:05 +01:00 |
|