aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2006-08-09 20:40:56 +0000
committerBruce Momjian <bruce@momjian.us>2006-08-09 20:40:56 +0000
commit0553a0507cd466926cc6902a5c6cf35f920c1e67 (patch)
tree2a8ba7ae71c63f2546bb4f863f903f4645e01494 /src
parent64214a2f01775fa79c14cd3366158c6960ef4763 (diff)
downloadpostgresql-0553a0507cd466926cc6902a5c6cf35f920c1e67.tar.gz
postgresql-0553a0507cd466926cc6902a5c6cf35f920c1e67.zip
On Win32, make minimum setitimer() sleep be 1ms, so sleeps < 1ms aren't
rounded down to zero. Backpatch to 8.1.X.
Diffstat (limited to 'src')
-rw-r--r--src/backend/port/win32/timer.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/port/win32/timer.c b/src/backend/port/win32/timer.c
index 0a38f00858e..88d4b6d5857 100644
--- a/src/backend/port/win32/timer.c
+++ b/src/backend/port/win32/timer.c
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/port/win32/timer.c,v 1.10 2006/08/09 17:47:03 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/port/win32/timer.c,v 1.11 2006/08/09 20:40:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,8 +56,14 @@ pg_timer_thread(LPVOID param)
timerCommArea.value.it_value.tv_usec == 0)
waittime = INFINITE; /* Cancel the interrupt */
else
+ {
+ /* Minimum wait time is 1ms */
+ if (timerCommArea.value.it_value.tv_sec == 0 &&
+ timerCommArea.value.it_value.tv_usec < 1000)
+ timerCommArea.value.it_value.tv_usec = 1000;
/* WaitForSingleObjectEx() uses milliseconds */
waittime = timerCommArea.value.it_value.tv_usec / 1000 + timerCommArea.value.it_value.tv_sec * 1000;
+ }
ResetEvent(timerCommArea.event);
LeaveCriticalSection(&timerCommArea.crit_sec);
}