]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-rx-no-interlockedadd-20080311
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 12 Mar 2008 05:13:59 +0000 (05:13 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 12 Mar 2008 05:13:59 +0000 (05:13 +0000)
LICENSE IPL10

InterlockedAdd is only supported on Itanium

(cherry picked from commit 9cc4a8e02cd6b244c34f04ba9526183edd358bf7)

src/rx/rx.h

index 6d7ab24717794b864087a4b3b13735461e2b248c..51a2f01df87986fb6559c698f0d83c3c08b6e685 100644 (file)
@@ -1053,13 +1053,17 @@ typedef struct rx_interface_stat {
 #define rx_MutexDecrement(object, mutex) InterlockedDecrement(&object)
 #define rx_MutexAdd1Increment2(object1, addend, object2, mutex) \
     do { \
-        InterlockedAdd(&object1, addend); \
+        MUTEX_ENTER(&mutex); \
+        object1 += addend; \
         InterlockedIncrement(&object2); \
+        MUTEX_EXIT(&mutex); \
     } while (0)
 #define rx_MutexAdd1Decrement2(object1, addend, object2, mutex) \
     do { \
-        InterlockedAdd(&object1, addend); \
+        MUTEX_ENTER(&mutex); \
+        object1 += addend; \
         InterlockedDecrement(&object2); \
+        MUTEX_EXIT(&mutex); \
     } while (0)
 #else
 #define rx_MutexIncrement(object, mutex) \