add a single-threaded version of cas()
authorSimon Marlow <marlowsd@gmail.com>
Fri, 6 Feb 2009 13:01:30 +0000 (13:01 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Fri, 6 Feb 2009 13:01:30 +0000 (13:01 +0000)
includes/SMP.h

index 5d74667..49bc336 100644 (file)
@@ -218,6 +218,17 @@ xchg(StgPtr p, StgWord w)
     return old;
 }
 
+STATIC_INLINE StgWord
+cas(StgVolatilePtr p, StgWord o, StgWord n)
+{
+    StgWord result;
+    result = *p;
+    if (result == o) {
+        *p = n;
+    }
+    return result;
+}
+
 #endif /* !THREADED_RTS */
 
 #endif /* SMP_H */