Thread: pgsql: Fix deadlock danger when atomic ops are done under spinlock.
Fix deadlock danger when atomic ops are done under spinlock. This was a danger only for --disable-spinlocks in combination with atomic operations unsupported by the current platform. While atomics.c was careful to signal that a separate semaphore ought to be used when spinlock emulation is active, spin.c didn't actually implement that mechanism. That's my (Andres') fault, it seems to have gotten lost during the development of the atomic operations support. Fix that issue and add test for nesting atomic operations inside a spinlock. Author: Andres Freund Discussion: https://postgr.es/m/20200605023302.g6v3ydozy5txifji@alap3.anarazel.de Backpatch: 9.5- Branch ------ REL_13_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/5fffa8fce37b981e1a5bb79affce9a856e021265 Modified Files -------------- src/backend/storage/lmgr/spin.c | 97 ++++++++++++++++++++++++++++------------- src/test/regress/regress.c | 52 ++++++++++++++++++++++ 2 files changed, 119 insertions(+), 30 deletions(-)