Commit Graph

361 Commits

Author SHA1 Message Date
Andrey Semashev
e3536bec75 Hopefully, fixes #9447.
Cleanup of the success flag in CAS operations has been reworked. The
flag is automatically cleared by default and only set when the operation
succeeds. Also minor code reformatting and __volatile__ specifications
to prohibit the assembler code moving around.
2014-03-23 15:15:56 +04:00
Andrey Semashev
8bac8ab651 Merge branch 'develop' 2014-03-20 20:59:44 +04:00
Andrey Semashev
c56a76c084 Further attempts to work around clang bugs. 2014-03-19 19:07:30 +04:00
Andrey Semashev
8a3e5b1466 Further attempts to work around clang compilation failures. 2014-03-18 21:25:33 +04:00
Andrey Semashev
9e15e02528 Attempt to make Darwin clang compile the asm statement. 2014-03-17 19:36:39 +04:00
Andrey Semashev
522279d1e7 Added missing fence functions for the clang 3.4 workaround. Also made atomic_flag copy and assignment to be deleted on C++11 compilers. 2014-03-16 21:19:42 +04:00
Andrey Semashev
b277b46c5f Removed incorrect constexpr qualifications from constructors with non-empty bodies. 2014-03-15 16:25:10 +04:00
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
e04ffeb523 Merge branch 'develop' 2014-03-11 20:57:46 +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
7b13e9cd24 Reworked capabilities definition. For all platforms, added BOOST_ATOMIC_INTn_LOCK_FREE macros that define the support for fixed sized integers. Other macros are deduced from the new ones, according to the native type sizes. 2014-02-09 16:12:00 +04:00
Andrey Semashev
4efb93ba4d Ranamed header. 2014-02-09 13:38:52 +04:00
Andrey Semashev
3dfdc9440c Merge branch 'develop' into decouple_interface_impl_rewrite 2014-01-27 11:30:39 +04:00
Andrey Semashev
20747acd08 Corrected includes. 2014-01-27 11:30:04 +04:00
Andrey Semashev
28f0c4c408 Merge branch 'develop' into decouple_interface_impl_rewrite 2014-01-27 01:03:31 +04:00
Andrey Semashev
173eb4a64f Fixed compilation with MSVC. 2014-01-26 21:24:34 +04:00
Andrey Semashev
7d768ca2e1 Extracted all capability macros to separate headers. 2014-01-26 19:39:38 +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
c9573230cb Merge branch 'develop' 2014-01-19 18:15:07 +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
1fc5d75a98 Merged changes from develop. 2014-01-07 15:33:56 +04: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
Andrey Semashev
799b66041d Merged changeset 85793 from trunk.
[SVN r85969]
2013-09-26 21:14:24 +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
6dc50f685c Merged recent changes from trunk.
[SVN r85604]
2013-09-08 13:55:41 +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
822d7655cf Merged recent changes from trunk.
[SVN r85092]
2013-07-20 18:01:35 +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