|RE : Re: [eigen] Help on solving a race condition|
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
Sorry for top post from my phone.
My definition of portable is I think quite wide libatomic-ops is portable to every target of gcc >4.1
Because it is used for static initialisation of static members
It is a pretty safe fallback, and it is used even in embeded world because bohem garbage collect use it, and bohem garbage is used by free java.
Le 15 juin 2012 14:15, "Gael Guennebaud" <gael.guennebaud@xxxxxxxxx> a écrit :
yes I already had a look at a few atomic libs, including atomic-ops,
but we don't have the same definition of portable. So clearly some
architectures/systems will require a manual initialization.
Nevertheless, we could still enable atomic ops for the few systems for
which we are sure about the results:
Windows-x86-MSVC -> _InterlockedCompareExchange intrinsic
Linux/windows-x86-ICC-GCC -> __sync_val_compare_and_swap intrinsic.
That probably already cover 95% of the use cases, so why not. I
already have a version doing so.
Using C++11 atomics is dangerous because currently the compilers
defines __cplusplus >= 201103L even though they don't support all
c++11 features. For instance, atomic are supported by clang only from
the 3.1 version. So in addition to checking for __cplusplus >=
201103L, we also have to check the compiler name and version, and
that's how the nightmare starts...
On Fri, Jun 15, 2012 at 1:23 PM, Ilja Honkonen
>>>> If you want ...
|Mail converted by MHonArc 2.6.19+||http://listengine.tuxfamily.org/|