| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
| Cc: | Denis A Ustimenko <denis(at)oldham(dot)ru>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: droped out precise time calculations in src/interfaces/libpq/fe-connect.c |
| Date: | 2002-10-15 04:01:16 |
| Message-ID: | 11258.1034654476@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> Denis A Ustimenko wrote:
>> Beware of almost 1 second posiible error. For example: connect_timeout == 1,
>> we start at 0.999999 then finish_time == 1. If CPU is quite busy we will
>> do only one iteration. I don't know is it enough to make connection?
>> True timeout in this case == 0.000001
> Good question. What is going to happen is that select() is going to be
> passed tv_sec = 1, and it is going to sleep for one second. Now, if
> select is interrupted, another time() call is going to be made.
There is a very simple answer to this, which I think I suggested to Joe
originally, but it's not in the code now: the initial calculation of
finish_time = now() + timeout must add one. This ensures that any
roundoff error is in the conservative direction of timing out later,
rather than sooner.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Larry Rosenman | 2002-10-15 04:06:00 | PG_DUMP and Adding columns/Types |
| Previous Message | Jeff Davis | 2002-10-15 03:47:05 | Re: [GENERAL] Postgres-based system to run .org registry? |