From: Jeffrey Altman Date: Wed, 12 Mar 2008 05:13:59 +0000 (+0000) Subject: DEVEL15-rx-no-interlockedadd-20080311 X-Git-Tag: openafs-devel-1_5_34~36 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=75673c15f2d8410e0f789be63073fbe9f7ecc75e;p=packages%2Fo%2Fopenafs.git DEVEL15-rx-no-interlockedadd-20080311 LICENSE IPL10 InterlockedAdd is only supported on Itanium (cherry picked from commit 9cc4a8e02cd6b244c34f04ba9526183edd358bf7) --- diff --git a/src/rx/rx.h b/src/rx/rx.h index 6d7ab2471..51a2f01df 100644 --- a/src/rx/rx.h +++ b/src/rx/rx.h @@ -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) \