attached.
-- 
Dave Cramer
519 939 0336
ICQ # 14675561
Index: backend/storage/lmgr/s_lock.c
===================================================================
RCS file: /usr/local/cvs/pgsql-server/src/backend/storage/lmgr/s_lock.c,v
retrieving revision 1.16
diff -c -r1.16 s_lock.c
*** backend/storage/lmgr/s_lock.c	8 Aug 2003 21:42:00 -0000	1.16
--- backend/storage/lmgr/s_lock.c	21 Apr 2004 20:27:34 -0000
***************
*** 76,82 ****
  	 * The select() delays are measured in centiseconds (0.01 sec) because 10
  	 * msec is a common resolution limit at the OS level.
  	 */
! #define SPINS_PER_DELAY		100
  #define NUM_DELAYS			1000
  #define MIN_DELAY_CSEC		1
  #define MAX_DELAY_CSEC		100
--- 76,82 ----
  	 * The select() delays are measured in centiseconds (0.01 sec) because 10
  	 * msec is a common resolution limit at the OS level.
  	 */
! #define SPINS_PER_DELAY		10
  #define NUM_DELAYS			1000
  #define MIN_DELAY_CSEC		1
  #define MAX_DELAY_CSEC		100
***************
*** 88,93 ****
--- 88,94 ----
  
  	while (TAS(lock))
  	{
+ 		__asm__ __volatile__ ( "rep;nop": : :"memory");
  		if (++spins > SPINS_PER_DELAY)
  		{
  			if (++delays > NUM_DELAYS)
Index: include/storage/s_lock.h
===================================================================
RCS file: /usr/local/cvs/pgsql-server/src/include/storage/s_lock.h,v
retrieving revision 1.115.2.1
diff -c -r1.115.2.1 s_lock.h
*** include/storage/s_lock.h	4 Nov 2003 09:43:56 -0000	1.115.2.1
--- include/storage/s_lock.h	21 Apr 2004 20:26:25 -0000
***************
*** 103,110 ****
  	register slock_t _res = 1;
  
  	__asm__ __volatile__(
! 		"	lock			\n"
  		"	xchgb	%0,%1	\n"
  :		"=q"(_res), "=m"(*lock)
  :		"0"(_res));
  	return (int) _res;
--- 103,113 ----
  	register slock_t _res = 1;
  
  	__asm__ __volatile__(
! 		"       cmpb $0,%1      \n"
! 		"       jne     1f      \n"
! 		"	lock		\n"
  		"	xchgb	%0,%1	\n"
+ 		"       1:\n"
  :		"=q"(_res), "=m"(*lock)
  :		"0"(_res));
  	return (int) _res;
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to