From 9cc4a8e02cd6b244c34f04ba9526183edd358bf7 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 12 Mar 2008 05:12:54 +0000 Subject: [PATCH] rx-no-interlockedadd-20080311 LICENSE IPL10 InterlockedAdd is only supported on Itanium --- src/rx/rx.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/rx/rx.h b/src/rx/rx.h index ec4724d..22b61df 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) \ -- 1.9.4