Improve 64bit atomics support.
When adding atomics back in b64d92f1, I added 64bit support as optional; there wasn't yet a direct user in sight. That turned out to be a bit short-sighted, it'd already have been useful a number of times. Add a fallback implementation of 64bit atomics, just like the one we have for 32bit atomics. Additionally optimize reads/writes to 64bit on a number of platforms where aligned writes of that size are atomic. This can now be tested with PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY. Author: Andres Freund Reviewed-By: Amit Kapila Discussion: https://postgr.es/m/20160330230914.GH13305@awork2.anarazel.de
Showing
- src/backend/port/atomics.c 64 additions, 1 deletionsrc/backend/port/atomics.c
- src/include/port/atomics.h 5 additions, 8 deletionssrc/include/port/atomics.h
- src/include/port/atomics/arch-ia64.h 3 additions, 0 deletionssrc/include/port/atomics/arch-ia64.h
- src/include/port/atomics/arch-ppc.h 3 additions, 0 deletionssrc/include/port/atomics/arch-ppc.h
- src/include/port/atomics/arch-x86.h 10 additions, 0 deletionssrc/include/port/atomics/arch-x86.h
- src/include/port/atomics/fallback.h 33 additions, 0 deletionssrc/include/port/atomics/fallback.h
- src/include/port/atomics/generic.h 18 additions, 4 deletionssrc/include/port/atomics/generic.h
- src/test/regress/regress.c 0 additions, 4 deletionssrc/test/regress/regress.c
Please register or sign in to comment