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
|
Список | 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 по дате отправления: