Only in /home/stijn/parsec-2.1-mirror/pkgs/apps/raytrace/src/RTTL/common: MapOptions.hxx~
diff -r --unified /home/stijn/parsec-2.1-mirror/pkgs/apps/raytrace/src/RTTL/common/RTThread.hxx /home/stijn/parsec-2.1/pkgs/apps/raytrace/src/RTTL/common/RTThread.hxx
--- /home/stijn/parsec-2.1-mirror/pkgs/apps/raytrace/src/RTTL/common/RTThread.hxx	2014-01-16 17:52:49.230919015 +0100
+++ /home/stijn/parsec-2.1/pkgs/apps/raytrace/src/RTTL/common/RTThread.hxx	2014-01-16 17:52:07.668916150 +0100
@@ -60,38 +60,56 @@
 class AtomicCounter
 {
 private:
-  atomic_t m_counter;
-  char dummy[64-sizeof(atomic_t)]; // (iw) to make sure it's the only
+  int m_counter;
+  pthread_mutex_t m_mutex;
+  char dummy[64-sizeof(int)-sizeof(pthread_mutex_t)]; // (iw) to make sure it's the only
                                    // counter sitting in its
                                    // cacheline....
 public:
 
   AtomicCounter() {
+    pthread_mutex_init(&m_mutex, NULL);
     reset();
   }
 
   AtomicCounter(const int v) {
+    pthread_mutex_init(&m_mutex, NULL);
     m_counter = v;
   }
 
   _INLINE void reset() {
+    pthread_mutex_lock(&m_mutex);
 #if defined(_WIN32)
     m_counter = 0;
 #else
     m_counter = -1;
 #endif
+    pthread_mutex_unlock(&m_mutex);
   }
 
   _INLINE int inc() {
-    return atomic_inc(&m_counter);
+    int ret;
+    pthread_mutex_lock(&m_mutex);
+    ret = ++m_counter;
+    pthread_mutex_unlock(&m_mutex);
+    return ret;
   }
 
   _INLINE int dec() {
-    return atomic_dec(&m_counter);
+    int ret;
+    pthread_mutex_lock(&m_mutex);
+    ret = --m_counter;
+    pthread_mutex_unlock(&m_mutex);
+    return ret;
   }
 
   _INLINE int add(const int i) {
-    return atomic_add(&m_counter,i);
+    int ret;
+    pthread_mutex_lock(&m_mutex);
+    m_counter += i;
+    ret = m_counter;
+    pthread_mutex_unlock(&m_mutex);
+    return ret;
   }
 
 
Only in /home/stijn/parsec-2.1-mirror/pkgs/apps/raytrace/src/RTTL/common: RTThread.hxx~
