Add RISC-V spinlock support in s_lock.h.
authorTom Lane <[email protected]>
Fri, 13 Aug 2021 17:58:47 +0000 (13:58 -0400)
committerTom Lane <[email protected]>
Fri, 13 Aug 2021 17:59:33 +0000 (13:59 -0400)
commit582a2affa4a945f5b9c8c233e71372ee9a7aa923
treea3fa8e29419c5a3480fc001c8518940dc5745cc6
parent715a8668a5f703f00b8f6cdc126381eb87205d90
Add RISC-V spinlock support in s_lock.h.

Like the ARM case, just use gcc's __sync_lock_test_and_set();
that will compile into AMOSWAP.W.AQ which does what we need.

At some point it might be worth doing some work on atomic ops
for RISC-V, but this should be enough for a creditable port.

Back-patch to all supported branches, just in case somebody
wants to try them on RISC-V.

Marek Szuba

Discussion: https://postgr.es/m/dea97b6d-f55f-1f6d-9109-504aa7dfa421@gentoo.org
src/include/storage/s_lock.h