From a8b952da7726357de2ec070c3d28681883f87c9f Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Mon, 19 Mar 2018 00:24:20 -0400 Subject: [PATCH] store maxSendQBytes in a uint32 to avoid alignment problems The sync.atomic documentation says: "On both ARM and x86-32, it is the caller's responsibility to arrange for 64-bit alignment of 64-bit words accessed atomically." --- irc/getters.go | 4 ++-- irc/server.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/irc/getters.go b/irc/getters.go index 56b97057..7168a329 100644 --- a/irc/getters.go +++ b/irc/getters.go @@ -10,11 +10,11 @@ import ( ) func (server *Server) MaxSendQBytes() int { - return int(atomic.LoadUint64(&server.maxSendQBytes)) + return int(atomic.LoadUint32(&server.maxSendQBytes)) } func (server *Server) SetMaxSendQBytes(m int) { - atomic.StoreUint64(&server.maxSendQBytes, uint64(m)) + atomic.StoreUint32(&server.maxSendQBytes, uint32(m)) } func (server *Server) ISupport() *isupport.List { diff --git a/irc/server.go b/irc/server.go index 260396eb..c96c6959 100644 --- a/irc/server.go +++ b/irc/server.go @@ -109,7 +109,7 @@ type Server struct { limits Limits listeners map[string]*ListenerWrapper logger *logger.Manager - maxSendQBytes uint64 + maxSendQBytes uint32 monitorManager *MonitorManager motdLines []string name string