I have applied the following patch for the following reasons:
	
	Remove sleep() and use single PG_SLEEP call for Win32 signal handling
	and consistency.
	
	Change PG_USLEEP to use SleepEx() for signal interuptability.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Index: src/backend/storage/buffer/bufmgr.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/storage/buffer/bufmgr.c,v
retrieving revision 1.153
diff -c -c -r1.153 bufmgr.c
*** src/backend/storage/buffer/bufmgr.c	24 Jan 2004 20:00:45 -0000	1.153
--- src/backend/storage/buffer/bufmgr.c	30 Jan 2004 15:55:05 -0000
***************
*** 1058,1067 ****
  		 * Nap for the configured time or sleep for 10 seconds if
  		 * there was nothing to do at all.
  		 */
! 		if (n > 0)
! 			PG_USLEEP(BgWriterDelay * 1000);
! 		else
! 			sleep(10);
  	}
  }
  
--- 1058,1064 ----
  		 * Nap for the configured time or sleep for 10 seconds if
  		 * there was nothing to do at all.
  		 */
! 		PG_USLEEP((n > 0) ? BgWriterDelay * 1000 : 10000000);
  	}
  }
  
Index: src/include/miscadmin.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/miscadmin.h,v
retrieving revision 1.148
diff -c -c -r1.148 miscadmin.h
*** src/include/miscadmin.h	26 Jan 2004 22:59:53 -0000	1.148
--- src/include/miscadmin.h	30 Jan 2004 15:55:06 -0000
***************
*** 109,115 ****
  #else
  #define PG_USLEEP(_usec) \
  do { \
! 	Sleep((_usec) < 500 ? 1 : ((_usec)+500)/ 1000); \
  } while(0)
  #endif
  
--- 109,115 ----
  #else
  #define PG_USLEEP(_usec) \
  do { \
! 	SleepEx(((_usec) < 500 ? 1 : ((_usec) + 500) / 1000), TRUE); \
  } while(0)
  #endif
Fri, 30 Jan 2004 10:58:44 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Fix for win32 sleep