On Fri, Mar 2, 2018 at 05:21:28PM -0500, Tels wrote: > Hello Robert, > > On Fri, March 2, 2018 12:22 pm, Robert Haas wrote: > > On Wed, Feb 28, 2018 at 10:06 AM, Robert Haas <robertmh...@gmail.com> > > wrote: > >> [ latest patches ] > > > > Committed. Thanks for the review. > > Cool :) > > There is a typo, tho: > > + /* > + * If the counterpary is known to have attached, we can read mq_receiver > + * without acquiring the spinlock and assume it isn't NULL. Otherwise, > + * more caution is needed. > + */ > > s/counterpary/counterparty/; > > Sorry, only noticed while re-reading the thread. > > Also, either a double space is missing, or one is too many: > > + /* > + * Separate prior reads of mq_ring from the increment of mq_bytes_read > + * which follows. Pairs with the full barrier in shm_mq_send_bytes(). > We > + * only need a read barrier here because the increment of mq_bytes_read > is > + * actually a read followed by a dependent write. > + */ > > (" Pairs ..." vs. ". We only ...") > > Best regards,
Change applied with the attached patch. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +
diff --git a/src/backend/storage/ipc/shm_mq.c b/src/backend/storage/ipc/shm_mq.c new file mode 100644 index 3faace2..c80cb6e *** a/src/backend/storage/ipc/shm_mq.c --- b/src/backend/storage/ipc/shm_mq.c *************** shm_mq_sendv(shm_mq_handle *mqh, shm_mq_ *** 493,499 **** return SHM_MQ_DETACHED; /* ! * If the counterpary is known to have attached, we can read mq_receiver * without acquiring the spinlock and assume it isn't NULL. Otherwise, * more caution is needed. */ --- 493,499 ---- return SHM_MQ_DETACHED; /* ! * If the counterparty is known to have attached, we can read mq_receiver * without acquiring the spinlock and assume it isn't NULL. Otherwise, * more caution is needed. */ *************** shm_mq_inc_bytes_read(shm_mq *mq, Size n *** 1203,1211 **** /* * Separate prior reads of mq_ring from the increment of mq_bytes_read ! * which follows. Pairs with the full barrier in shm_mq_send_bytes(). We ! * only need a read barrier here because the increment of mq_bytes_read is ! * actually a read followed by a dependent write. */ pg_read_barrier(); --- 1203,1211 ---- /* * Separate prior reads of mq_ring from the increment of mq_bytes_read ! * which follows. This pairs with the full barrier in shm_mq_send_bytes(). ! * We only need a read barrier here because the increment of mq_bytes_read ! * is actually a read followed by a dependent write. */ pg_read_barrier();