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
17d4cb5479
atomic: merge fixes from trunk
...
[SVN r84400]
2013-05-21 09:54:09 +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
Vicente J. Botet Escriba
db2b88bf30
Atomic: merge from trunk.
...
[SVN r83533]
2013-03-23 17:50:41 +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
c4f2be5630
atomic: merge documentation fix from trunk
...
[SVN r82570]
2013-01-20 18:05:10 +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
f32acdd8be
Attempt to fix compilation in Windows CE.
...
[SVN r82204]
2012-12-25 03:36:31 +00:00
Andrey Semashev
e5eb08c4b8
Attempt to fix compilation in Windows CE.
...
[SVN r82203]
2012-12-25 03:35:12 +00:00
Andrey Semashev
8530fd8c4c
Fixed compilation on PGI.
...
[SVN r82184]
2012-12-23 12:22:28 +00:00
Andrey Semashev
3c1e036002
Fixed compilation on PGI.
...
[SVN r82183]
2012-12-23 12:19:45 +00:00
Andrey Semashev
ec58a5893a
Added missing atomic typedefs.
...
[SVN r82168]
2012-12-22 15:09:01 +00:00
Andrey Semashev
f1edf108b2
Added missing atomic typedefs.
...
[SVN r82161]
2012-12-21 22:39:16 +00:00
Andrey Semashev
6aed631bd0
Attempt to fix compilation on Windows CE. Restored full fence in the platform_fence_after_load function on architectures other than x86 and x86_64. The fence is not required only on those architectures.
...
[SVN r82157]
2012-12-21 21:30:41 +00:00
Andrey Semashev
12997b05f9
Restored full fence in the platform_fence_after_load function on architectures other than x86 and x86_64. The fence is not required only on those architectures.
...
[SVN r82156]
2012-12-21 21:01:19 +00:00
Andrey Semashev
bd0ef80622
Attempt to fix compilation on Windows CE.
...
[SVN r82155]
2012-12-21 20:36:26 +00:00
Andrey Semashev
442273fa49
Removed unnecessary fences, added pause operations to tight spin loops to optimize power consumption and performance on HT-enabled systems.
...
[SVN r82154]
2012-12-21 20:14:10 +00:00
Andrey Semashev
33343de82e
Removed unnecessary fences, added pause operations to tight spin loops to optimize power consumption and performance on HT-enabled systems.
...
[SVN r82106]
2012-12-19 22:00:25 +00:00
Tim Blechmann
e6b1277390
atomic: merge fixes from trunk
...
[SVN r82074]
2012-12-18 12:28:12 +00:00
Tim Blechmann
982dc948e3
atomic: fix typos
...
fixes #7804
[SVN r82072]
2012-12-18 09:43:23 +00:00
Andrey Semashev
b5da965c5b
Boost.Atomic and Boost.Lockfree merged from trunk.
...
[SVN r81976]
2012-12-15 18:28:27 +00:00
Andrey Semashev
55f3aaadaf
Code cleanup. Implemented optimized atomic operations for Windows.
...
[SVN r81969]
2012-12-15 13:24:01 +00:00
Andrey Semashev
39760bdd91
Updated reference to platform.hpp according to rearranged header layout.
...
[SVN r81933]
2012-12-14 11:32:31 +00:00
Andrey Semashev
bf8270ebf9
Rearranged public headers and added #pragma once for compilers that support it.
...
[SVN r81932]
2012-12-14 11:13:30 +00:00
Andrey Semashev
d7ebff9db9
Added threading=multi requirement so that linking is correct when atomic_flag is not atomic.
...
[SVN r81834]
2012-12-10 19:51:51 +00:00
Andrey Semashev
7dabb82d2b
Added threading=multi requirement to fix linking with pthread.
...
[SVN r81833]
2012-12-10 19:43:51 +00:00
Andrey Semashev
4c200d702b
Corrected BOOST_ATOMIC_LLONG_LOCK_FREE macro definition on Windows x64 platform.
...
[SVN r81831]
2012-12-10 18:56:34 +00:00
Tim Blechmann
548371c910
atomic: update maintainers & libraries files, add index.html
...
[SVN r81760]
2012-12-07 16:55:38 +00:00
Tim Blechmann
8622f33f85
atomic: integrate documentation
...
[SVN r81757]
2012-12-07 14:52:41 +00:00
Tim Blechmann
eea655ca35
atomic: fix testsuite compilation with -Werror=unused-but-set-variable
...
[SVN r81756]
2012-12-07 13:35:25 +00:00
Tim Blechmann
0b153e9f03
atomic: fix linking of testsuite
...
[SVN r81738]
2012-12-06 12:35:53 +00:00
Tim Blechmann
be1524ea4e
atomic: update documentation
...
[SVN r81737]
2012-12-06 12:35:42 +00:00
Tim Blechmann
3c288331b0
atomic: make use of gcc's __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8
...
__i686__ is not enabled for every platform supporting cmpxchg8b. to work
around this, we provide a separate implementation via gcc's atomic builtins
[SVN r81736]
2012-12-06 12:35:32 +00:00
Jürgen Hunold
2eec3ea622
clients using Boost.Atomic as a shared library need BOOST_ATOMIC_DYN_LINK defined.
...
[SVN r80573]
2012-09-18 11:24:18 +00:00
Hartmut Kaiser
d0d71e81d8
Boost.Atomic: committing MSVC visibility patch, auto-linking and long long fix
...
[SVN r80530]
2012-09-15 12:44:39 +00:00
Helge Bahmann
71564c97cf
Add missing copyright and licence notices
...
Add missing notices to various files to make clear they are distributable
under the boost licence.
[SVN r80527]
2012-09-14 19:12:13 +00:00
Helge Bahmann
b53b1d4bdc
Add missing newline at end of file
...
[SVN r80526]
2012-09-14 19:06:38 +00:00
Helge Bahmann
40c05b4274
Rename armv6+ to armv6plus
...
Avoid forbidden character in file name.
[SVN r80525]
2012-09-14 19:05:52 +00:00