Re: Optimize LISTEN/NOTIFY
От | Joel Jacobson |
---|---|
Тема | Re: Optimize LISTEN/NOTIFY |
Дата | |
Msg-id | d35a114d-204a-4b40-9284-06749532b724@app.fastmail.com обсуждение исходный текст |
Ответ на | Re: Optimize LISTEN/NOTIFY (Chao Li <li.evan.chao@gmail.com>) |
Ответы |
Re: Optimize LISTEN/NOTIFY
|
Список | pgsql-hackers |
On Fri, Sep 26, 2025, at 04:26, Chao Li wrote: > I think what you explained is partially correct. > > Based on my understanding, any backend process may call > SignalBackends(), which means that it’s possible that multiple backend > processes may call SignalBackends() concurrently. > > Looking at your code, between checking > QUEUE_BACKEND_WAKEUP_PENDING_FLAG(i) and set the flag to true, there is > a block of code (the “if-else”) to run, so that it’s possible that > multiple backend processes have passed the > QUEUE_BACKEND_WAKEUP_PENDING_FLAG(i) check, then multiple signals will > be sent to a process, which will lead to duplicate timeout enabled in > the receiver process. I don't see how that can happen; we're checking wakeup_pending_flag while holding an exclusive lock, so I don't see how multiple backend processes could be within the region where we check/set wakeup_pending_flag, at the same time? /Joel
В списке pgsql-hackers по дате отправления: