Title: [93450] trunk/Source/_javascript_Core
- Revision
- 93450
- Author
- [email protected]
- Date
- 2011-08-19 16:22:16 -0700 (Fri, 19 Aug 2011)
Log Message
Implement WTF::atomic{Increment, Decrement}() for QNX
https://bugs.webkit.org/show_bug.cgi?id=66605
Reviewed by Darin Adler.
* wtf/Atomics.h:
(WTF::atomicIncrement):
(WTF::atomicDecrement):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (93449 => 93450)
--- trunk/Source/_javascript_Core/ChangeLog 2011-08-19 23:18:11 UTC (rev 93449)
+++ trunk/Source/_javascript_Core/ChangeLog 2011-08-19 23:22:16 UTC (rev 93450)
@@ -1,3 +1,14 @@
+2011-08-19 Daniel Bates <[email protected]>
+
+ Implement WTF::atomic{Increment, Decrement}() for QNX
+ https://bugs.webkit.org/show_bug.cgi?id=66605
+
+ Reviewed by Darin Adler.
+
+ * wtf/Atomics.h:
+ (WTF::atomicIncrement):
+ (WTF::atomicDecrement):
+
2011-08-19 Beth Dakin <[email protected]>
https://bugs.webkit.org/show_bug.cgi?id=66590
Modified: trunk/Source/_javascript_Core/wtf/Atomics.h (93449 => 93450)
--- trunk/Source/_javascript_Core/wtf/Atomics.h 2011-08-19 23:18:11 UTC (rev 93449)
+++ trunk/Source/_javascript_Core/wtf/Atomics.h 2011-08-19 23:22:16 UTC (rev 93450)
@@ -67,6 +67,8 @@
#include <libkern/OSAtomic.h>
#elif OS(ANDROID)
#include <cutils/atomic.h>
+#elif OS(QNX)
+#include <atomic.h>
#elif COMPILER(GCC) && !OS(SYMBIAN)
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2))
#include <ext/atomicity.h>
@@ -94,6 +96,13 @@
inline int atomicIncrement(int volatile* addend) { return OSAtomicIncrement32Barrier(const_cast<int*>(addend)); }
inline int atomicDecrement(int volatile* addend) { return OSAtomicDecrement32Barrier(const_cast<int*>(addend)); }
+#elif OS(QNX)
+#define WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED 1
+
+// Note, atomic_{add, sub}_value() return the previous value of addend's content.
+inline int atomicIncrement(int volatile* addend) { return static_cast<int>(atomic_add_value(reinterpret_cast<unsigned volatile*>(addend), 1)) + 1; }
+inline int atomicDecrement(int volatile* addend) { return static_cast<int>(atomic_sub_value(reinterpret_cast<unsigned volatile*>(addend), 1)) - 1; }
+
#elif OS(ANDROID)
inline int atomicIncrement(int volatile* addend) { return android_atomic_inc(addend); }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes