Re: Suppressing useless wakeups in walreceiver - Mailing list pgsql-hackers

From Nathan Bossart
Subject Re: Suppressing useless wakeups in walreceiver
Date
Msg-id 20221105220055.GD137360@nathanxps13
Whole thread Raw
In response to Re: Suppressing useless wakeups in walreceiver  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Responses Re: Suppressing useless wakeups in walreceiver
List pgsql-hackers
On Mon, Oct 17, 2022 at 03:21:18PM +0900, Kyotaro Horiguchi wrote:
> Now that I see the fix for the implicit conversion:
> 
> L527: +                nap = Max(0, (nextWakeup - now + 999) / 1000);
> ..
> L545: +                                       (int) Min(INT_MAX, nap),
> 
> 
> I think limiting the naptime at use is confusing. Don't we place these
> adjacently?  Then we could change the nap to an integer.  Or we can
> just assert out for the nap time longer than INT_MAX (but this would
> require another int64 variable. I belive we won't need such a long
> nap, (or that is no longer a nap?)

Yeah, I guess this deserves a comment.  I could also combine it easily:

    nap = (int) Min(INT_MAX, Max(0, (nextWakeup - now + 999) / 1000));

We could probably just remove the WL_TIMEOUT flag and set timeout to -1
whenever "nap" is calculated to be > INT_MAX, but I didn't think it was
worth complicating the code in order to save an extra wakeup every ~25
days.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Making Vars outer-join aware
Next
From: Nathan Bossart
Date:
Subject: Re: Suppressing useless wakeups in walreceiver