Re: libpq v17 PQsocketPoll timeout is not granular enough

From: Dominique Devienne <ddevienne(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: libpq v17 PQsocketPoll timeout is not granular enough
Date: 2024-06-10 18:43:28
Message-ID: CAFCRh-8zngmAsYfLyrmz6mDhPPF5uh8YRBCcMJjdUidKBeFSxw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Bummer… I didn’t presume to suggest an api before, but simply adding an
extra int with the milliseconds offset from the time_t is simple, and
trivial to plug into the implementation I saw. Callers who don’t care can
simply pass zero. while I could pass a computed time_t and ms offset using
<chrono>. No need for fancy types imho. Aren’t betas precisely for the
purpose of exposing apis to those like myself to vet them? This is also
beta1, I,e, the first one. My €0.02

On Mon, Jun 10, 2024 at 6:18 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Dominique Devienne <ddevienne(at)gmail(dot)com> writes:
> > PQsocketPoll() being based on time_t, it has only second resolution,
> AFAIK.
> > Despite the [underlying implementation in fe-misc.c][2] supporting at
> > least milliseconds.
> > ...
> > But I think it would a pity if that unreleased API couldn't be made to
> > accomodate sub-second timeouts and more use-cases, like above.
> > Especially given that libpq v17 isn't out yet. I may come late to the
> > game, but hopefully it is not too late.
>
> This is an interesting suggestion, but I think yes it's too late.
> We're already past beta1 and this'd require some fairly fundamental
> rethinking, since there's no easy substitute for type time_t that has
> millisecond resolution. (The callers do want to specify an end time
> not a timeout interval, since some of them loop around PQsocketPoll
> and don't want the end time to slip.)
>
> I guess conceivably we could use gettimeofday() and struct timeval
> instead of time() and time_t, but it'd touch a lot of places in
> libpq and it'd make some of the calculations a lot more complex.
>
> Maybe a better idea would be to convert to using our
> src/include/portability/instr_time.h abstraction? But that
> would be problematic for outside callers.
>
> In any case this doesn't seem like a sane thing to be redesigning
> post-beta. A few months ago maybe we'd have done it, but ...
>
> regards, tom lane
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rich Shepard 2024-06-10 18:50:27 Multiple tables row insertions from single psql input file
Previous Message Ron Johnson 2024-06-10 17:51:50 Re: Escaping single quotes with backslash seems not to work