PERFORCE change 94303 for review

John Baldwin jhb at FreeBSD.org
Thu Mar 30 15:49:23 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=94303

Change 94303 by jhb at jhb_slimer on 2006/03/30 15:48:24

	Add an sx_xlocked() macro.  Grrr.

Affected files ...

.. //depot/projects/smpng/sys/sys/sx.h#17 edit

Differences ...

==== //depot/projects/smpng/sys/sys/sx.h#17 (text+ko) ====

@@ -76,6 +76,7 @@
 	SYSUNINIT(name##_sx_sysuninit, SI_SUB_LOCK, SI_ORDER_MIDDLE,	\
 	    sx_destroy, (sxa))
 
+#define	sx_xlocked(sx)		((sx)->sx_cnt < 0 && (sx)->sx_xholder == curthread)
 #define	sx_slock(sx)		_sx_slock((sx), LOCK_FILE, LOCK_LINE)
 #define	sx_xlock(sx)		_sx_xlock((sx), LOCK_FILE, LOCK_LINE)
 #define	sx_try_slock(sx)	_sx_try_slock((sx), LOCK_FILE, LOCK_LINE)
@@ -86,7 +87,7 @@
 #define	sx_downgrade(sx)	_sx_downgrade((sx), LOCK_FILE, LOCK_LINE)
 #define	sx_unlock(sx)	\
 		do { \
-			if ((sx)->sx_cnt < 0) \
+			if (sx_xlocked(sx)) \
 				sx_xunlock(sx); \
 			else \
 				sx_sunlock(sx); \


More information about the p4-projects mailing list