Commit Graph

433 Commits

Author SHA1 Message Date
Peter Dimov
4af91d46f1 Fix -Wundef warning by removing outdated workarounds 2024-01-06 15:48:05 +02:00
Peter Dimov
ac0381f0b8 Update C++03 deprecation message 2023-10-18 14:12:02 +03:00
Peter Dimov
13be03abf8 Avoid -Wsign-conversion warning 2023-06-25 13:47:24 +03:00
Peter Dimov
ef1651449f Update C++03 deprecation message 2023-06-03 02:20:39 +03:00
Peter Dimov
b34786c4d4 Interleave calls to sp_thread_pause and sp_thread_sleep in yield_k, instead of doing a single pause at 0 2023-06-03 02:16:52 +03:00
Peter Dimov
aacfb25c82 Add BOOST_HEADER_DEPRECATED to boost/smart_ptr/detail/sp_thread_*.hpp 2023-06-03 02:14:43 +03:00
Peter Dimov
414b0a65d9 Use yield primitives from Core 2023-06-02 22:08:15 +03:00
Peter Dimov
78fd14f412 Add C++03 deprecation notice 2023-03-06 03:54:51 +02:00
Peter Dimov
97c9204a95 Align spinlock::v_ as a bool because of Apple PPC32. Refs #105. 2022-11-10 17:08:55 +02:00
Egor Pugin
a0d4ec3915 Add missing ifdef check. 2022-10-10 22:26:59 +03:00
Jordan Williams
59b5b17e81 Add support for different sync instructions for CodeWarrior PPC (#95)
* Use msync or se_isync as appropriate for CodeWarrior PPC

* Un-obsolete sp_counted_base_cw_ppc

* Remove untested VLE_ON branch

* Use the supported compiler intrinsic __sync(); instead of msync asm

* Revert "Use the supported compiler intrinsic __sync(); instead of msync asm"

This reverts commit 9b92ea28f0.
2022-06-22 18:41:00 +03:00
Peter Dimov
f2ab3b21f0 Merge pull request #90 from fanquake/use_core_checked_delete
refactor: use boost/core/checked_delete.hpp over boost/checked_delete.hpp
2022-05-20 03:45:08 +03:00
Peter Dimov
95eaa2d7c3 Update shared_ptr move constructors to improve codegen 2022-05-19 22:20:50 +03:00
fanquake
f4d7116241 refactor: use core/checked_delete.hpp over checked_delete.hpp
boost/checked_delete.hpp has been deprecated.
2022-04-03 16:49:10 +01:00
Glen Fernandes
6716193d9c Add get_allocator_pointer 2021-12-16 11:26:11 -05:00
Peter Dimov
fec5fb97c8 Enable move-only deleters in the nullptr_t constructors 2021-05-11 02:15:27 +03:00
Peter Dimov
b52d7548b3 Enable move-only deleters in the allocator constructor 2021-05-11 02:05:28 +03:00
Peter Dimov
594c7485a5 Enable move-only deleters 2021-05-11 01:59:01 +03:00
Peter Dimov
d41546ddce Move the unique_ptr deleter instead of copying it 2021-05-11 01:20:02 +03:00
Peter Dimov
6e8c15c02f Fix typo, trailing whitespace 2020-06-10 21:59:48 +03:00
Peter Dimov
7c0dcd338a Refactor yield_k.hpp 2020-06-10 18:58:08 +03:00
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
fad0c20263 Add owner_hash 2020-06-05 18:45:00 +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
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
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
0ddf990869 Add noexcept to owner_less, owner_equal_to 2020-06-01 03:44:41 +03:00
Peter Dimov
fd612dc114 Add owner_equal_to 2020-06-01 03:05:34 +03:00
Peter Dimov
91f3aa0386 Add local_shared_ptr::owner_equals 2020-06-01 01:35:25 +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