From: Jeffrey Altman Date: Thu, 4 Apr 2013 03:33:40 +0000 (-0400) Subject: Windows: Switch to Interlocked ops for RDR Set/Clear X-Git-Tag: upstream/1.8.0_pre1^2~1240 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=dd73c9c1ef98b94ee1f4e870b52e2604422595e3;p=packages%2Fo%2Fopenafs.git Windows: Switch to Interlocked ops for RDR Set/Clear Switch to using interlocked operations for the SetFlag and ClearFlag macros. Change-Id: I2b071ae49f69d557c30d1280fb7877dde7f76f40 Reviewed-on: http://gerrit.openafs.org/9722 Reviewed-by: Peter Scott Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/fs/Include/AFSDefines.h b/src/WINNT/afsrdr/kernel/fs/Include/AFSDefines.h index 239e4ff9f..fc1f595b3 100644 --- a/src/WINNT/afsrdr/kernel/fs/Include/AFSDefines.h +++ b/src/WINNT/afsrdr/kernel/fs/Include/AFSDefines.h @@ -74,11 +74,11 @@ #endif #ifndef SetFlag -#define SetFlag(_F,_SF) ((_F) |= (_SF)) +#define SetFlag(_F,_SF) InterlockedOr(&(_F), (_SF)) #endif #ifndef ClearFlag -#define ClearFlag(_F,_SF) ((_F) &= ~(_SF)) +#define ClearFlag(_F,_SF) InterlockedAnd(&(_F), ~(_SF)) #endif #define QuadAlign(Ptr) ( \ diff --git a/src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h b/src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h index cff945013..9e25bc1e3 100644 --- a/src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h +++ b/src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h @@ -218,11 +218,11 @@ NTSTATUS #endif #ifndef SetFlag -#define SetFlag(_F,_SF) ((_F) |= (_SF)) +#define SetFlag(_F,_SF) InterlockedOr(&(_F), (_SF)) #endif #ifndef ClearFlag -#define ClearFlag(_F,_SF) ((_F) &= ~(_SF)) +#define ClearFlag(_F,_SF) InterlockedAnd(&(_F), ~(_SF)) #endif #define QuadAlign(Ptr) ( \