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/corelib/io | |
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/corelib/io')
-rw-r--r-- | src/corelib/io/forkfd_qt.cpp | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/src/corelib/io/forkfd_qt.cpp b/src/corelib/io/forkfd_qt.cpp index 80d1cd54d7..cf44874153 100644 --- a/src/corelib/io/forkfd_qt.cpp +++ b/src/corelib/io/forkfd_qt.cpp @@ -37,37 +37,12 @@ ** ****************************************************************************/ -// these might be defined via precompiled headers -#include <QtCore/qatomic.h> +#include <QtCore/qglobal.h> #define FORKFD_NO_SPAWNFD - #if defined(QT_NO_DEBUG) && !defined(NDEBUG) # define NDEBUG #endif -typedef QT_PREPEND_NAMESPACE(QBasicAtomicInt) ffd_atomic_int; -#define ffd_atomic_pointer(type) QT_PREPEND_NAMESPACE(QBasicAtomicPointer<type>) - -QT_BEGIN_NAMESPACE - -#define FFD_ATOMIC_INIT(val) Q_BASIC_ATOMIC_INITIALIZER(val) - -#define FFD_ATOMIC_RELAXED Relaxed -#define FFD_ATOMIC_ACQUIRE Acquire -#define FFD_ATOMIC_RELEASE Release - -#define FFD_CONCAT(x, y) x ## y - -#define ffd_atomic_load(ptr,order) (ptr)->FFD_CONCAT(load, order)() -#define ffd_atomic_store(ptr,val,order) (ptr)->FFD_CONCAT(store, order)(val) -#define ffd_atomic_exchange(ptr,val,order) (ptr)->FFD_CONCAT(fetchAndStore, order)(val) -#define ffd_atomic_compare_exchange(ptr,expected,desired,order1,order2) \ - (ptr)->FFD_CONCAT(testAndSet, order1)(*expected, desired, *expected) -#define ffd_atomic_add_fetch(ptr,val,order) ((ptr)->FFD_CONCAT(fetchAndAdd, order)(val) + val) - -QT_END_NAMESPACE - -extern "C" { +#include <forkfd.h> #include "../../3rdparty/forkfd/forkfd.c" -} |