Nekotekina
|
ec1ea466fd
|
atomic.hpp: fix typo
|
2019-10-23 16:01:14 +03:00 |
|
Nekotekina
|
b844cd81e8
|
atomic.hpp: remove <string> dependency
|
2019-10-20 23:06:17 +03:00 |
|
Nekotekina
|
2dde133e1f
|
atomic.hpp: fix internal resource deallocation
Also remove debug printf.
|
2019-10-20 23:06:17 +03:00 |
|
Nekotekina
|
4d46e66833
|
atomic.hpp: improve internal data layout
Put semaphore control variable together in hashtable.
Avoid unnecessary allocation of extents.
|
2019-10-20 20:08:09 +03:00 |
|
Nekotekina
|
56b310ebac
|
atomic.hpp: reimplement USE_FUTEX path for Linux
|
2019-10-20 20:05:36 +03:00 |
|
Nekotekina
|
e0f60c5dce
|
atomic.hpp: rewrite collision handling
Remove "fallback" code path.
Remove USE_FUTEX code path temporarily.
|
2019-10-20 18:29:20 +03:00 |
|
Nekotekina
|
db7042b986
|
Restore using keyed events in waitable atomics on Windows
|
2019-10-18 23:08:00 +03:00 |
|
Nekotekina
|
9710473a2e
|
atomic.hpp: use native semaphores on Windows
Windows: drop keyed events
Linux: keep using native futex
Implement unused POSIX semaphore path
Implement fallback semaphore with pure std (OSX, BSD, etc)
|
2019-09-24 05:01:00 +03:00 |
|
Nekotekina
|
95c939f014
|
atomic.hpp: fix pointer mask
|
2019-09-24 05:01:00 +03:00 |
|
Nekotekina
|
74471e8ea3
|
atomic.hpp: fixup for atomic waiting
|
2019-09-24 05:01:00 +03:00 |
|
Nekotekina
|
e982871ab5
|
atomic.hpp: increase hashtable capacity
Double size and ignore 2 lowest bits (effectively x8)
|
2019-09-13 15:53:34 +03:00 |
|
Nekotekina
|
2fc8844315
|
atomic.hpp: add atomic wait mask support
|
2019-09-13 15:53:34 +03:00 |
|
Nekotekina
|
4504ac2d12
|
atomic.hpp: implement collision fallback properly
Should prevent devastating effect of collisions
|
2019-09-10 19:25:39 +03:00 |
|
Nekotekina
|
67f31c17d1
|
atomic.hpp: fix signal saturation logic
Make sure to notify_all at max signal count.
|
2019-09-10 19:25:39 +03:00 |
|
Nekotekina
|
a808c2aaf6
|
atomic.hpp: optimize internal logic
Move waiter count to highest bits to prevent false futex wakeups.
Test pointer bits properly in notify_all to avoid false wakeups.
|
2019-09-10 19:25:39 +03:00 |
|
Nekotekina
|
aa99faa85d
|
atomic.hpp: add timeout support
|
2019-09-10 19:25:39 +03:00 |
|
Nekotekina
|
1668d6ee1b
|
atomic.hpp: implement wait callback interface
Will be used to wake up threads uniformly.
|
2019-09-10 17:43:04 +03:00 |
|
Nekotekina
|
5bd17a44c9
|
Add fallback implementation for waitable atomics
May improve perf on OSX/BSD
|
2019-08-02 18:37:23 +03:00 |
|
Nekotekina
|
c6993d3f1c
|
Change bits of waitable atomics
Reduce max waiter count to 2^14.
Refactor code to use waiter_mask and signal_mask constants.
|
2019-07-29 21:55:59 +03:00 |
|
Nekotekina
|
e1db6cef6f
|
Remove ignored bits in waitable atomics
It was not implemented correctly.
|
2019-07-29 21:55:59 +03:00 |
|
Nekotekina
|
f63e89f9b4
|
Implement waitable atomics
Moved Atomic.h to util/atomic.hpp
List source files in CMakeLists.txt
|
2019-07-29 03:04:55 +03:00 |
|