Add placeholders for loadAcquire and storeRelease in the atomics

This should be replaced later with proper loadAcquire and storeRelease
functions in the architectures that require them. The code right now
is enough for x86, x86-64 and IA-64. It's probably not good for ARM
and MIPS.

Change-Id: Iaa28a18cad64772539662439c2c14690ec26940f
Reviewed-on: http://codereview.qt-project.org/5029
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
This commit is contained in:
Thiago Macieira 2011-07-02 12:02:10 +02:00 committed by Qt by Nokia
parent 0c59eb1156
commit 5613c9722a

View File

@ -96,6 +96,11 @@ public:
// Atomic API, implemented in qatomic_XXX.h
int load() const { return _q_value; }
int loadAcquire() { return _q_value; }
void store(int newValue) { _q_value = newValue; }
void storeRelease(int newValue) { _q_value = newValue; }
static bool isReferenceCountingNative();
static bool isReferenceCountingWaitFree();
@ -185,6 +190,11 @@ public:
// Atomic API, implemented in qatomic_XXX.h
T *load() const { return _q_value; }
T *loadAcquire() { return _q_value; }
void store(T *newValue) { _q_value = newValue; }
void storeRelease(T *newValue) { _q_value = newValue; }
static bool isTestAndSetNative();
static bool isTestAndSetWaitFree();