Re: inefficient loop in StandbyReleaseLockList()

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: inefficient loop in StandbyReleaseLockList()
Дата
Msg-id 20211028220748.6ekrl74minwq75f4@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: inefficient loop in StandbyReleaseLockList()  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Ответы Re: inefficient loop in StandbyReleaseLockList()  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
Hi,

On 2021-10-28 15:57:51 +0900, Kyotaro Horiguchi wrote:
> I found several other instances of the pattern
> "while(list){list_delete_first(); /*no-break*/}" in
> llvm_release_context, gistProcessEmptyingQueue, AtEOXact_Namespace and
> maybe transformGraph and processState in trgm_regexp.c.  We might want
> to apply this technique to the three first, and maybe to the last two.

We should be careful with changes like this, because there's some advantages
in the while(!empty) pattern too. Iterating over the whole list doesn't work
if there's any other modifications to the list, or if there's a chance of
errors. For the latter there just needs to be a CHECK_FOR_INTERRUPTS()
somewhere...

Greetings,

Andres Freund



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

Предыдущее
От: Justin Pryzby
Дата:
Сообщение: Re: Improve logging when using Huge Pages
Следующее
От: Andres Freund
Дата:
Сообщение: Re: inefficient loop in StandbyReleaseLockList()