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