Peter Dimov
|
8d79ceaf8a
|
Revert using a relaxed load before test_and_set; not necessary, and slower, with a proper yielding strategy as opposed to just pause-spinning
|
2020-06-10 18:20:33 +03:00 |
|
Peter Dimov
|
d35cf29b99
|
Revert "Use a relaxed load before XCHG to not lock cache line on contention (AMD spinlock recommendation per <https://probablydance.com/2019/12/30/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is/>)"
This reverts commit 8afe162910.
|
2020-06-10 18:18:35 +03:00 |
|
Peter Dimov
|
72ca834ae8
|
Change yield_k to not use sp_thread_yield; using sp_thread_sleep is always strictly superior, at least on Windows
|
2020-06-07 21:24:21 +03:00 |
|
Peter Dimov
|
8afe162910
|
Use a relaxed load before XCHG to not lock cache line on contention (AMD spinlock recommendation per <https://probablydance.com/2019/12/30/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is/>)
|
2020-06-07 21:07:35 +03:00 |
|
Peter Dimov
|
5d31c1c443
|
Refactor yield_k.hpp
|
2020-06-07 20:40:41 +03:00 |
|
Peter Dimov
|
3db4ad9a15
|
Use a relaxed load before test_and_set to not lock cache line on contention (AMD spinlock recommendation per <https://probablydance.com/2019/12/30/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is/>)
|
2020-06-07 17:59:55 +03:00 |
|
Peter Dimov
|
d0655ab145
|
Add atomic_count_gcc_atomic.hpp
|
2020-06-07 06:29:14 +03:00 |
|
Peter Dimov
|
7c01e640f7
|
Use int_least32_t in atomic_count_sync; prefer it to atomic_count_gcc_x86; mark latter obsolete
|
2020-06-07 06:05:17 +03:00 |
|
Peter Dimov
|
00db1e02c6
|
Add spinlock_gcc_atomic.hpp
|
2020-06-07 05:00:03 +03:00 |
|
Peter Dimov
|
914b93430a
|
Change spinlock_sync.hpp to use a single byte
|
2020-06-07 04:10:49 +03:00 |
|
Peter Dimov
|
15ffd7852b
|
Remove Clang C11 implementation; no longer used
|
2020-06-07 02:05:55 +03:00 |
|
Peter Dimov
|
c66c4f5ed1
|
Mark platform-specific implementations as obsolete
|
2020-06-07 02:04:42 +03:00 |
|
Peter Dimov
|
7e9d8c39a3
|
Add sp_has_gcc_intrinsics.hpp, sp_counted_base_gcc_atomic.hpp
|
2020-06-06 20:43:08 +03:00 |
|
Peter Dimov
|
a0d08b17e0
|
Fix include guards
|
2020-06-06 17:13:56 +03:00 |
|
Peter Dimov
|
108a86cdbd
|
Rename sp_has_sync.hpp to sp_has_sync_intrinsics.hpp
|
2020-06-06 17:11:28 +03:00 |
|
Peter Dimov
|
d08bdc86e5
|
Remove unused files
|
2020-06-06 16:59:36 +03:00 |
|
Peter Dimov
|
f8dcf5f6f4
|
Use BOOST_SMT_PAUSE starting from the first iteration
|
2020-06-06 16:54:57 +03:00 |
|
Peter Dimov
|
d38f64ded9
|
Update documentation
|
2020-06-06 00:35:12 +03:00 |
|
Peter Dimov
|
b66fe51566
|
Avoid g++ 4.4 conflict between hash() and boost::hash
|
2020-06-06 00:15:58 +03:00 |
|
Peter Dimov
|
1b5568d585
|
Add sp_unordered_test
|
2020-06-05 18:54:44 +03:00 |
|
Peter Dimov
|
fad0c20263
|
Add owner_hash
|
2020-06-05 18:45:00 +03:00 |
|
Peter Dimov
|
1c61e54b13
|
Update documentation
|
2020-06-05 18:12:59 +03:00 |
|
Peter Dimov
|
a0fc1e6daa
|
Add wp_unordered_test
|
2020-06-04 20:52:17 +03:00 |
|
Peter Dimov
|
5dd84ea389
|
Add .owner_hash_value to shared/weak_ptr, hash_value, std::hash/equal_to specializations for weak_ptr
|
2020-06-04 20:40:57 +03:00 |
|
Peter Dimov
|
bc677e9098
|
Do not require boost::hash in the std::hash specializations
|
2020-06-03 17:38:03 +03:00 |
|
Peter Dimov
|
688cfed63e
|
Add Boost::bind to CMake test dependencies
|
2020-06-03 07:38:07 +03:00 |
|
Peter Dimov
|
c63dc266b9
|
Update submodule libs/bind on Travis/Appveyor
|
2020-06-02 21:51:00 +03:00 |
|
Peter Dimov
|
6c181a0707
|
When BOOST_SP_REPORT_IMPLEMENTATION is defined, report what platform-specific atomic implementation is used
|
2020-06-02 20:51:38 +03:00 |
|
Peter Dimov
|
4047290b85
|
Add multithreaded tests
|
2020-06-02 18:58:45 +03:00 |
|
Peter Dimov
|
dc6c76d7e9
|
Move lightweight_thread.hpp to smart_ptr/detail
|
2020-06-02 17:55:15 +03:00 |
|
Peter Dimov
|
5a18ffdc56
|
Add std::hash specializations for shared_ptr, local_shared_ptr, intrusive_ptr
|
2020-06-02 05:59:23 +03:00 |
|
Peter Dimov
|
09fdd5ebfd
|
Add FreeBSD to Travis
|
2020-06-01 18:18:57 +03:00 |
|
Peter Dimov
|
911874e139
|
Add gcc-10 to Travis
|
2020-06-01 18:18:12 +03:00 |
|
Peter Dimov
|
c7c0eacb74
|
Add initializers to eq and lt
|
2020-06-01 15:08:53 +03:00 |
|
Peter Dimov
|
9ed9f43ca8
|
Document owner_less, owner_equal_to
|
2020-06-01 03:53:21 +03:00 |
|
Peter Dimov
|
0ddf990869
|
Add noexcept to owner_less, owner_equal_to
|
2020-06-01 03:44:41 +03:00 |
|
Peter Dimov
|
a08a5f3d41
|
Update introduction
|
2020-06-01 03:26:02 +03:00 |
|
Peter Dimov
|
77c2d4cad7
|
Add owner_less_test2
|
2020-06-01 03:13:42 +03:00 |
|
Peter Dimov
|
fd612dc114
|
Add owner_equal_to
|
2020-06-01 03:05:34 +03:00 |
|
Peter Dimov
|
e67ebef9a7
|
Update changelog
|
2020-06-01 02:01:10 +03:00 |
|
Peter Dimov
|
6f5b9c7b37
|
Document local_shared_ptr::owner_equals
|
2020-06-01 01:59:40 +03:00 |
|
Peter Dimov
|
91f3aa0386
|
Add local_shared_ptr::owner_equals
|
2020-06-01 01:35:25 +03:00 |
|
Peter Dimov
|
686a354f21
|
Add lsp_owner_before_test
|
2020-06-01 01:16:46 +03:00 |
|
Peter Dimov
|
efceb04665
|
Asciidoctor 2 fixes
|
2020-06-01 01:02:09 +03:00 |
|
Peter Dimov
|
ca57860ae2
|
Update footer
|
2020-06-01 00:41:25 +03:00 |
|
Peter Dimov
|
9dcd05f918
|
Document owner_equals
|
2020-06-01 00:40:02 +03:00 |
|
Peter Dimov
|
4b724ab3f8
|
Add mixed shared_count/weak_count operator== overloads to avoid refcount manipulation
|
2020-05-31 22:07:36 +03:00 |
|
Peter Dimov
|
58915ca2fe
|
Add owner_equals
|
2020-05-31 21:41:06 +03:00 |
|
Peter Dimov
|
62b0e5cdf4
|
Add mixed shared_count/weak_count operator< overloads to avoid refcount manipulation
|
2020-05-31 21:12:12 +03:00 |
|
Peter Dimov
|
951ff783b5
|
Add sp_owner_before_test
|
2020-05-31 20:33:24 +03:00 |
|