From: Bruce Momjian Date: Wed, 9 Aug 2006 20:41:07 +0000 (+0000) Subject: On Win32, make minimum setitimer() sleep be 1ms, so sleeps < 1ms aren't X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=3d4e94c99357d819a9bd7ca22061c62da55e25a1;p=users%2Fbernd%2Fpostgres.git On Win32, make minimum setitimer() sleep be 1ms, so sleeps < 1ms aren't rounded down to zero. Backpatch to 8.1.X. --- diff --git a/src/backend/port/win32/timer.c b/src/backend/port/win32/timer.c index b8f1e8bd68..048bebb058 100644 --- a/src/backend/port/win32/timer.c +++ b/src/backend/port/win32/timer.c @@ -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); }