Re: Suppressing useless wakeups in walreceiver

Поиск
Список
Период
Сортировка
От Nathan Bossart
Тема Re: Suppressing useless wakeups in walreceiver
Дата
Msg-id 20221011005059.GA1277590@nathanxps13
обсуждение исходный текст
Ответ на Re: Suppressing useless wakeups in walreceiver  (Nathan Bossart <nathandbossart@gmail.com>)
Список pgsql-hackers
On Mon, Oct 10, 2022 at 11:10:14AM -0700, Nathan Bossart wrote:
> On Mon, Oct 10, 2022 at 10:51:14AM -0700, Nathan Bossart wrote:
>>> +                /* Find the soonest wakeup time, to limit our nap. */
>>> +                nextWakeup = INT64_MAX;
>>> +                for (int i = 0; i < NUM_WALRCV_WAKEUPS; ++i)
>>> +                    nextWakeup = Min(state.wakeup[i], nextWakeup);
>>> +                nap = Max(0, (nextWakeup - now + 999) / 1000);
> 
> Hm.  We should probably be more cautious here since nextWakeup is an int64
> and nap is an int.  My guess is that we should just set nap to -1 if
> nextWakeup > INT_MAX.

Here's an attempt at fixing that.  I ended up just changing "nap" to an
int64 and then ensuring it's no larger than INT_MAX in the call to
WaitLatchOrSocket().  IIUC we can't use -1 here because WL_TIMEOUT is set.

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

Вложения

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