diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2019-08-10 08:11:23 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2019-08-20 16:56:55 -0700 |
commit | 8784ab7ba8718c7254a774e3a487950cb77cd5ec (patch) | |
tree | b821ece37235c59082e7993ebb676e7b999853cc /src/3rdparty/forkfd/forkfd_atomic.h | |
parent | 5e74d0e80c7e68784f38c462b037ba48a43222b3 (diff) |
forkfd: Add C11 and C++11 atomic support
For forkfd, this is extremely useful, since users can rely on proper
atomic API, not the old GCC API or the internal API that backs the C11 /
C++11 implementation itself.
This also caught one more mistaken use of seq_cst.
Change-Id: Iec9c051acd73484c8d94fffd15b9985fe545e8b5
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/3rdparty/forkfd/forkfd_atomic.h')
-rw-r--r-- | src/3rdparty/forkfd/forkfd_atomic.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/3rdparty/forkfd/forkfd_atomic.h b/src/3rdparty/forkfd/forkfd_atomic.h new file mode 100644 index 0000000000..394e30d26c --- /dev/null +++ b/src/3rdparty/forkfd/forkfd_atomic.h @@ -0,0 +1,39 @@ +/**************************************************************************** +** +** Copyright (C) 2019 Intel Corporation. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and associated documentation files (the "Software"), to deal +** in the Software without restriction, including without limitation the rights +** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +** copies of the Software, and to permit persons to whom the Software is +** furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +** THE SOFTWARE. +** +****************************************************************************/ + +#if !defined(FFD_ATOMIC_H) & !defined(FFD_ATOMIC_RELAXED) +#define FFD_ATOMIC_H + +#if defined(__cplusplus) && __cplusplus >= 201103L +# include "forkfd_c11.h" +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +# include "forkfd_c11.h" +#elif defined(__GNUC__) +# include "forkfd_gcc.h" +#endif + +#endif /* FFD_ATOMIC_h && FFD_ATOMIC_RELAXED */ +#ifndef FFD_ATOMIC_RELAXED +# error "Could not determine atomics for this platform" +#endif |