Re: TODO-item: Add sleep() function, remove from regress.c

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: "Jim C(dot) Nasby" <jnasby(at)pervasive(dot)com>
Cc: Joachim Wieland <joe(at)mcknight(dot)de>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-patches(at)postgresql(dot)org
Subject: Re: TODO-item: Add sleep() function, remove from regress.c
Date: 2006-01-11 01:02:39
Message-ID: 43C4592F.6000104@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

Jim C. Nasby wrote:

>On Tue, Jan 10, 2006 at 11:31:13AM +0100, Joachim Wieland wrote:
>
>
>>No, cancelling the sleep works (at least for Unix). Isn't cancelling
>>implemented via a signal that interrupts select() ?
>>
>>Anyway, I've changed it, removing the ~2000s limit is a good point.
>>+ while (secs > 1.0)
>>+ {
>>+ pg_usleep(1000000);
>>+ CHECK_FOR_INTERRUPTS();
>>+ secs -= 1.0;
>>+ }
>>
>>
>
>Won't this result in a call to pg_sleep with a long sleep time ending up
>sleeping noticeably longer than requested?
>
>

Looks like it to me.

Instead of using a counter it might be better to set a target end time
and check that against the value returned from time() or gettimeofday().

cheers

andrew

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Mark Kirkwood 2006-01-11 02:18:49 Re: Summary table trigger example race condition
Previous Message Jim C. Nasby 2006-01-11 00:44:17 Re: TODO-item: Add sleep() function, remove from regress.c