From 74d099494c5853a44188316ba117a8909b299d40 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 9 Aug 2011 18:52:35 -0400 Subject: Measure WaitLatch's timeout parameter in milliseconds, not microseconds. The original definition had the problem that timeouts exceeding about 2100 seconds couldn't be specified on 32-bit machines. Milliseconds seem like sufficient resolution, and finer grain than that would be fantasy anyway on many platforms. Back-patch to 9.1 so that this aspect of the latch API won't change between 9.1 and later releases. Peter Geoghegan --- src/backend/port/unix_latch.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/backend/port/unix_latch.c') diff --git a/src/backend/port/unix_latch.c b/src/backend/port/unix_latch.c index 727c5fca816..047e9def61b 100644 --- a/src/backend/port/unix_latch.c +++ b/src/backend/port/unix_latch.c @@ -134,7 +134,7 @@ DisownLatch(volatile Latch *latch) * Wait for given latch to be set or until timeout is exceeded. * If the latch is already set, the function returns immediately. * - * The 'timeout' is given in microseconds, and -1 means wait forever. + * The 'timeout' is given in milliseconds, and -1 means wait forever. * On some platforms, signals cause the timeout to be restarted, so beware * that the function can sleep for several times longer than the specified * timeout. @@ -173,8 +173,8 @@ WaitLatchOrSocket(volatile Latch *latch, pgsocket sock, bool forRead, /* Initialize timeout */ if (timeout >= 0) { - tv.tv_sec = timeout / 1000000L; - tv.tv_usec = timeout % 1000000L; + tv.tv_sec = timeout / 1000L; + tv.tv_usec = (timeout % 1000L) * 1000L; tvp = &tv; } -- cgit v1.2.3