Improve shm_mq portability around MAXIMUM_ALIGNOF and sizeof(Size).

Robert Haas <rhaas@postgresql.org>

Commit: 3bd261ca18c67eafe18088e58fab511e3b965418
Author: Robert Haas <rhaas@postgresql.org>
Date: 2014-03-18T15:23:13Z
Releases: 9.4.0
Improve shm_mq portability around MAXIMUM_ALIGNOF and sizeof(Size).

Revise the original decision to expose a uint64-based interface and
use Size everywhere possible.  Avoid assuming that MAXIMUM_ALIGNOF is
8, or making any assumption about the relationship between that value
and sizeof(Size).  If MAXIMUM_ALIGNOF is bigger, we'll now insert
padding after the length word; if it's smaller, we are now prepared
to read and write the length word in chunks.

Per discussion with Tom Lane.

Files

PathChange+/−
src/backend/storage/ipc/shm_mq.c modified +152 −99
src/include/storage/shm_mq.h modified +2 −2