• Andres Freund's avatar
    Fix deadlock danger when atomic ops are done under spinlock. · cf1234a1
    Andres Freund authored
    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-
    cf1234a1
spin.c 4.31 KB