aboutsummaryrefslogtreecommitdiff
path: root/src/platform/posix/posix_atomic.c
Commit message (Collapse)AuthorAge
* pollers: use atomic bit masking operations to eliminate lockssGarrett D'Amore2024-12-22
| | | | This is done for kqueue and poll. Others coming soon.
* performance: reference counters can use relaxed order when incrementingGarrett D'Amore2024-12-07
|
* fixes #1586 Undefined reference to nni_atomic_swap & nni_atomic_cas(Built by ↵alvin12212022-05-29
| | | | gcc 4.8.5 ). (#1587)
* Could use GCC atomics for older versions of GCC.Garrett D'Amore2021-12-08
| | | | | | | | This should help greatly with performance on older systems such as CentOS 7 and GCC 4.8. Though, such folks really should update to newer compilers. Folks running version of GCC earlier than 4.7 will still pay a rather significant performance penalty, as they still implement atomics with a global mutex.
* Compilation failure for atomics on legacy platforms (gcc 4.8, centos 7)Garrett D'Amore2021-12-08
|
* Provide atomic pointer support.Garrett D'Amore2021-12-05
| | | | | This is initially used for TLS to make loading the engine pointer faster, eliminating a much more expensive lock operation.
* more compile fixes for legacy atomicsGarrett D'Amore2020-02-05
|
* fixes #1182 v1.2.5 build fails gcc 4.8Garrett D'Amore2020-02-05
|
* fixes #1176 Unable to build latestGarrett D'Amore2020-01-27
|
* XREQ and others race on TTL.Garrett D'Amore2020-01-11
| | | | | | | | | | The TTL in these cases should have been atomic. To facilitate things we actually introduce an atomic int for convenience. We also introduce a convenience nni_msg_must_append_u32() and nni_msg_header_must_append_u32(), so that we can eliminate some failure tests that cannot ever happen. Combined with a new test for xreq, we have 100% coverage for xreq and more coverage for the other REQ/REP protocols.
* fixes #1105 pollable can be inlined, and use atomicsGarrett D'Amore2020-01-04
| | | | | This also introduces an nni_atomic_cas64 to help with lock-free designs. Some mechanical renaming was done in some of the protocols for spelling.
* fixes #1075 WebSocket heap use after freeGarrett D'Amore2019-12-30
| | | | | This also introduces a new atomic boolean type, so we can use that to trigger whether we've added the HTTP handler or not.
* fixes #1034 POSIX atomic handing default case is bustedGarrett D'Amore2019-12-24
|
* wrong return type in fallback atomic opGarrett D'Amore2019-06-05
|
* fix #946 Use after free in TLSGarrett D'Amore2019-05-19
| | | | | This also introduces a more efficient reference counting usage based on atomics, rather than locks.
* fixes #674 want 64-bit atomics (for stats)Garrett D'Amore2018-08-27
|
* fixes #572 Several locking errors foundGarrett D'Amore2018-07-03
fixes #573 atomic flags could help This introduces a new atomic flag, and reduces some of the global locking. The lock refactoring work is not yet complete, but this is a positive step forward, and should help with certain things. While here we also fixed a compile warning due to incorrect types.