From bed992d55ff69154c41efc5458773d7cc340ebeb Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 7 Jun 2021 23:38:53 +0200 Subject: [PATCH] Minimize false sharing of MPMC queue variables --- libs/pbd/pbd/mpmc_queue.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libs/pbd/pbd/mpmc_queue.h b/libs/pbd/pbd/mpmc_queue.h index afb3ae1f46..94f75c88f1 100644 --- a/libs/pbd/pbd/mpmc_queue.h +++ b/libs/pbd/pbd/mpmc_queue.h @@ -199,16 +199,14 @@ private: T _data; }; - typedef char cacheline_pad_t[64]; - - cacheline_pad_t _pad0; + char _pad0[64]; cell_t* _buffer; size_t _buffer_mask; - cacheline_pad_t _pad1; + char _pad1[64 - sizeof (cell_t*) - sizeof (size_t)]; MPMC_QUEUE_TYPE _enqueue_pos; - cacheline_pad_t _pad2; + char _pad2[64 - sizeof (size_t)]; MPMC_QUEUE_TYPE _dequeue_pos; - cacheline_pad_t _pad3; + char _pad3[64 - sizeof (size_t)]; }; } // namespace PBD