Re: droped out precise time calculations in src/interfaces/libpq/fe-connect.c

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: droped out precise time calculations in src/interfaces/libpq/fe-connect.c
Дата
Msg-id 11258.1034654476@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: droped out precise time calculations in src/interfaces/libpq/fe-connect.c  (Bruce Momjian <pgman@candle.pha.pa.us>)
Ответы Re: droped out precise time calculations in src/interfaces/libpq/fe-connect.c  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Bruce Momjian <pgman@candle.pha.pa.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


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jeff Davis
Дата:
Сообщение: Re: [GENERAL] Postgres-based system to run .org registry?
Следующее
От: Larry Rosenman
Дата:
Сообщение: PG_DUMP and Adding columns/Types