Andrey Semashev
bf1898e2e6
Added a workaround for clang 3.4 bug: the compiler does not implement __atomic intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 macro.
2014-03-15 16:11:03 +04:00
Andrey Semashev
e4bde20f2e
More compilation fixes for the case when 128-bit integers are not supported.
2014-02-28 12:43:11 +04:00
Andrey Semashev
20747acd08
Corrected includes.
2014-01-27 11:30:04 +04:00
Andrey Semashev
173eb4a64f
Fixed compilation with MSVC.
2014-01-26 21:24:34 +04:00
Andrey Semashev
6f6614717e
Added experimental support for ARM architecture on Windows. Completely untested.
2014-01-26 17:05:54 +04:00
Andrey Semashev
6bb71fdd8f
Fixed incorrect initialization of 128-bit values, when no native support for 128-bit integers is available.
2014-01-26 13:58:48 +04:00
Andrey Semashev
44e9f3c1b7
Added a readme and a logo.
2014-01-19 18:13:36 +04:00
Tim Blechmann
c3e146f265
Merge pull request #2 from K-ballo/patch-2
...
Silence GCC -Wcast-qual warning
2014-01-13 10:45:56 -08:00
Agustín Bergé
1ee6311ea4
Silence GCC -Wcast-qual warning
...
Use C++ casts instead of C-style casts in order to silence warning about casting away qualifiers.
warning: cast from type 'volatile bool*' to type 'bool*' casts away qualifiers [-Wcast-qual]
2014-01-13 12:31:22 -06:00
Andrey Semashev
9ded906200
The lock pool mutexes are now statically initialized. Fixes #9466 .
2013-12-14 19:44:23 +04:00
Tim Blechmann
6ef10a2d40
atomic: fix compilation and make use of gcc's cas-based implementation
2013-12-07 10:48:24 +01:00
Andrey Semashev
94359f6aea
Reverted commit 86144, which was misapplied and not required. The support for 64-bit atomic ops on 32-bit x86 was already present before.
...
[SVN r86320]
2013-10-15 11:08:22 +00:00
Tim Blechmann
9606e3f321
atomic: 64bit cas support for 32bit windows
...
fixes #9193
[SVN r86144]
2013-10-03 09:17:42 +00:00
Stephen Kelly
21fc47f109
Atomic: Remove obsolete MSVC version check.
...
[SVN r85910]
2013-09-25 21:11:49 +00:00
Andrey Semashev
799b822bab
Fixed duplicate BOOST_ATOMIC_COMPILER_BARRIER macro definition. Extracted linking setup to a separate header so that including interlocked.hpp doesn't require linking with the library.
...
[SVN r85793]
2013-09-19 20:04:47 +00:00
Andrey Semashev
dd3267bc43
Added macro checks for more ARM targets. The macros were taken from smart_ptr/detail/spinlock_gcc_arm.hpp.
...
[SVN r85586]
2013-09-06 17:37:29 +00:00
Andrey Semashev
a629bd6308
Corrected macro name.
...
[SVN r85578]
2013-09-05 18:28:42 +00:00
Andrey Semashev
1bda03c997
Attempt to fix tests on MSVC
...
[SVN r85574]
2013-09-05 17:01:50 +00:00
Andrey Semashev
b0886a7a78
Attempt to fix linking tests on Windows.
...
[SVN r85560]
2013-09-04 08:46:22 +00:00
Andrey Semashev
b8cd09c50b
Switched to boost::detail::lightweight_mutex instead of boost::mutex from Boost.Thread to avoid false dependencies on Boost.DateTime, Boost.Chrono and Boost.System. This should hopefully resolve linking problems on MinGW.
...
[SVN r85531]
2013-08-31 11:21:50 +00:00
Andrey Semashev
6ab6038e99
Added a missing include.
...
[SVN r85091]
2013-07-20 17:59:19 +00:00
Andrey Semashev
2dc386ae88
Added missing includes and std:: qualification for ptrdiff_t.
...
[SVN r85090]
2013-07-20 17:46:48 +00:00
Tim Blechmann
ffae0dc7a0
atomic: qnx/qcc compile fix
...
[SVN r85015]
2013-07-12 17:49:20 +00:00
Andrey Semashev
2327494330
Mentioned Intel compiler version in the comment.
...
[SVN r84857]
2013-06-21 08:29:19 +00:00
Andrey Semashev
1837dbe879
Disabled __atomic* intrinsics for Intel compiler.
...
[SVN r84856]
2013-06-21 08:25:35 +00:00
Andrey Semashev
adefa136d0
Minor performance optimization and fixes of register constraints alternatives.
...
[SVN r84816]
2013-06-17 20:07:13 +00:00
Andrey Semashev
64dfb109b8
Resolved MSVC warnings about multiple operator= overloads.
...
[SVN r84806]
2013-06-16 17:23:26 +00:00
Andrey Semashev
5c4c16f436
Extracted intptr_t and uintptr_t types to cstdint.hpp. Refs #7823 .
...
[SVN r84805]
2013-06-16 15:02:27 +00:00
Andrey Semashev
3869ce33cf
Added tests for int128 atomicity.
...
[SVN r84804]
2013-06-16 14:01:04 +00:00
Andrey Semashev
88eb902af7
More docs updates.
...
[SVN r84803]
2013-06-16 13:55:00 +00:00
Andrey Semashev
5f9abc8544
Added docs for atomicity detection macros.
...
[SVN r84802]
2013-06-16 13:46:39 +00:00
Andrey Semashev
55e8b16a12
Fixed compilation with gcc 4.4. Optimized code for gcc older than 4.7 and also added support for 128-bit atomic ops. Completed transition to defaulted and deleted functions.
...
[SVN r84801]
2013-06-16 13:40:11 +00:00
Andrey Semashev
9cab8a9ebf
Added a generic atomic<> implementation based on the new __atomic intrinsics available in gcc 4.7 and clang 3.2. The new implementation adds support for 128-bit atomic. Other implementations updated to employ new macros in Boost.Config for defaulted and deleted functions (this is not complete yet). Fixed padding for the lock pool. Initializing constructor for atomic<> made explicit to avoid ambiguities of different overloads of operator=.
...
[SVN r84800]
2013-06-15 20:43:48 +00:00
Andrey Semashev
179e72cfd1
Code cleanup.
...
[SVN r84700]
2013-06-08 18:22:36 +00:00
Andrey Semashev
dcab6171fa
Code cleanup.
...
[SVN r84699]
2013-06-08 18:10:21 +00:00
Andrey Semashev
5b0186dc7d
Added implementation of 64-bit atomic operations on 32-bit Windows. Pointer specializations of 64-bit CAS-based atomic implementation extracted to a separate header, since these specializations are not needed on 32-bit platforms.
...
[SVN r84695]
2013-06-08 17:36:38 +00:00
Tim Blechmann
8e69b6ffba
atomic: pad spin-locks to avoid false sharing
...
[SVN r84386]
2013-05-20 09:07:22 +00:00
Tim Blechmann
18b97cbe7a
atomic: Optimization for 64 bit loads and stores for 32 bit x86 on gcc
...
fixes #8574
[SVN r84288]
2013-05-15 06:12:46 +00:00
Tim Blechmann
96b44933f0
atomic: provide additive functionality for atomic<void*>
...
fixes #8501
[SVN r84190]
2013-05-08 04:45:38 +00:00
Andrey Semashev
82064eecd6
Added missing constexpr/noexcept.
...
[SVN r83099]
2013-02-23 15:24:58 +00:00
Andrey Semashev
888095208d
Fixed typo.
...
[SVN r83098]
2013-02-23 14:57:49 +00:00
Andrey Semashev
ca1f5e95d4
Fixed typo in the comment.
...
[SVN r83097]
2013-02-23 14:22:15 +00:00
Andrey Semashev
f9c4249c8e
1. Fixed compilation with MSVC 2003.
...
2. Fixed incorrect reinterpret_casts in constexpr constructors that could result in buffer overruns. The initializing constructors for non-integral atomics are not constexpr yet because memcpy must be used inside.
3. Made atomic_flag default constructors constexpr. This is not by the standard but we do not implement ATOMIC_FLAG_INIT yet, so the default constructor is needed and it should be constexpr when possible.
4. Fixed a few syntax errors and cleaned up the code a bit.
5. Moved operator value_type() to the interface class in order not to duplicate it in base_atomic specializations.
6. The return type of operator=() changed to follow the standard.
[SVN r83096]
2013-02-23 14:21:19 +00:00
Vicente J. Botet Escriba
546ff8d616
Atomic: fix some minor issues.
...
[SVN r82947]
2013-02-17 13:16:23 +00:00
Hartmut Kaiser
a6cd5bb9a7
Atomic: fixing Windows compilation problem
...
[SVN r82942]
2013-02-17 04:43:17 +00:00
Tim Blechmann
764db51b6d
atomic: adapt for constexpr and noexcept
...
Signed-off-by: Tim Blechmann <tim@klingt.org >
[SVN r82870]
2013-02-14 12:32:41 +00:00
Tim Blechmann
848f7530b5
atomic: uclibc doesn't seem to have intptr_t
...
fixes #7979
[SVN r82754]
2013-02-05 21:43:04 +00:00
Tim Blechmann
a6b599b6bb
atomic: fix example code
...
patch by gregor jasny
[SVN r82361]
2013-01-05 14:54:40 +00:00
Andrey Semashev
e5eb08c4b8
Attempt to fix compilation in Windows CE.
...
[SVN r82203]
2012-12-25 03:35:12 +00:00
Andrey Semashev
3c1e036002
Fixed compilation on PGI.
...
[SVN r82183]
2012-12-23 12:19:45 +00:00