From: Jeffrey Altman Date: Wed, 12 Mar 2008 05:12:54 +0000 (+0000) Subject: rx-no-interlockedadd-20080311 X-Git-Tag: BP-openafs-windows-kdfs-ifs~21 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=9cc4a8e02cd6b244c34f04ba9526183edd358bf7;p=packages%2Fo%2Fopenafs.git rx-no-interlockedadd-20080311 LICENSE IPL10 InterlockedAdd is only supported on Itanium --- diff --git a/src/rx/rx.h b/src/rx/rx.h index ec4724d03..22b61df84 100644 --- a/src/rx/rx.h +++ b/src/rx/rx.h @@ -1055,13 +1055,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) \