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

Reply via email to