]> granicus.if.org Git - postgresql/commit
Clean up latch related code.
authorAndres Freund <andres@anarazel.de>
Tue, 6 Jun 2017 23:13:00 +0000 (16:13 -0700)
committerAndres Freund <andres@anarazel.de>
Tue, 6 Jun 2017 23:13:00 +0000 (16:13 -0700)
commit9206ced1dc05d3a9cc99faafa22d5d8b16d998d1
treed4f09c26f0224ee99a56aad2ddab8d49c7f8bc83
parente3a815d2faa5be28551e71d5db44fb2c78133433
Clean up latch related code.

The larger part of this patch replaces usages of MyProc->procLatch
with MyLatch.  The latter works even early during backend startup,
where MyProc->procLatch doesn't yet.  While the affected code
shouldn't run in cases where it's not initialized, it might get copied
into places where it might.  Using MyLatch is simpler and a bit faster
to boot, so there's little point to stick with the previous coding.

While doing so I noticed some weaknesses around newly introduced uses
of latches that could lead to missed events, and an omitted
CHECK_FOR_INTERRUPTS() call in worker_spi.

As all the actual bugs are in v10 code, there doesn't seem to be
sufficient reason to backpatch this.

Author: Andres Freund
Discussion:
    https://postgr.es/m/20170606195321.sjmenrfgl2nu6j63@alap3.anarazel.de
    https://postgr.es/m/20170606210405.sim3yl6vpudhmufo@alap3.anarazel.de
Backpatch: -
src/backend/access/transam/parallel.c
src/backend/libpq/pqmq.c
src/backend/postmaster/bgworker.c
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
src/backend/replication/logical/launcher.c
src/backend/replication/logical/tablesync.c
src/backend/replication/logical/worker.c
src/backend/storage/lmgr/condition_variable.c
src/test/modules/worker_spi/worker_spi.c