On Tue, Jan 21, 2020 at 1:45 PM Thomas Munro <thomas.mu...@gmail.com> wrote: > Here are some patches to get rid of frequent system calls.
Here is one more case that I was sitting on because I wasn't sure how to do it: walreceiver.c. To make that work, libpq needs to be able to tell you when the socket has changed, which I did with a counter that is exposed to client code in patch 0004. The walreceiver change in 0005 works (trace the system calls on walreceiver to see the difference), but perhaps we can come up with a better way to code it so that eg logical/worker.c doesn't finish up duplicating the logic. Thoughts?
0001-Add-WaitMyLatch-to-replace-many-WaitLatch-calls.patch
Description: Binary data
0002-Use-WaitMyLatch-for-condition-variables.patch
Description: Binary data
0003-Introduce-a-reusable-WaitEventSet-for-the-stats-coll.patch
Description: Binary data
0004-libpq-Add-PQsocketChangeCount-to-advertise-socket-ch.patch
Description: Binary data
0005-Reuse-a-WaitEventSet-in-walreceiver.patch
Description: Binary data