changes
authorbdemsky <bdemsky>
Thu, 14 Apr 2011 06:51:33 +0000 (06:51 +0000)
committerbdemsky <bdemsky>
Thu, 14 Apr 2011 06:51:33 +0000 (06:51 +0000)
Robust/src/Runtime/affinity.c
Robust/src/Runtime/mlp_lock.h

index 8ea239d318125b537493fd323d6671a629a77084..d2c7114530b72b8c916279fd4797a376bab8636a 100644 (file)
@@ -7,27 +7,17 @@
 #include <stdarg.h>
 #include <stdlib.h>
 #include <runtime.h>
+#include "mlp_lock.h"
 
 static volatile unsigned int corecount=0;
 
-
-static inline int atomicinc(volatile unsigned int *lock) {
-  int retval=1;
-  __asm__ __volatile__("lock; xadd %0,%1"
-                       : "=r"(retval)
-                       : "m"(*lock), "0"(retval)
-                       : "memory");
-  return retval;
-}
-
-
 void set_affinity() {
   int err;
   cpu_set_t cpumask;
 
   CPU_ZERO(&cpumask);
 
-  int ourcount=atomicinc(&corecount);
+  int ourcount=atomicincandread(&corecount);
   ourcount=ourcount&7;
   int newvalue=ourcount>>1;
   if (ourcount&1) {
index d99a32705d72f32b3c3ddf428ce2e162a661bc91..ad33a424408ffb3166d586ec660f4e528633484c 100644 (file)
   "661:\n\tlock; "
 
 
+static inline int atomicincandread(volatile unsigned int *lock) {
+  int retval=1;
+  __asm__ __volatile__("lock; xadd %0,%1"
+                       : "=r"(retval)
+                       : "m"(*lock), "0"(retval)
+                       : "memory");
+  return retval;
+}
+
 static inline void atomic_dec(volatile int *v) {
   __asm__ __volatile__ (LOCK_PREFIX "decl %0"
                         : "+m" (*v));