Don't copy Server struct in sendPacket/sendError

Server struct contains Mutex which might be copied in inconsistent
state. Avoid this by declaring methods on pointer receiver.

This calms down go race detector.

Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
This commit is contained in:
Pavel Borzenkov 2017-03-27 18:29:37 +03:00 committed by John Eikenberry
parent 1d032678cc
commit 9aa225fc15
2 changed files with 4 additions and 4 deletions

View File

@ -186,7 +186,7 @@ func (rs *RequestServer) handle(request Request, pkt requestPacket) responsePack
}
// Wrap underlying connection methods to use packetManager
func (rs RequestServer) sendPacket(m encoding.BinaryMarshaler) error {
func (rs *RequestServer) sendPacket(m encoding.BinaryMarshaler) error {
if pkt, ok := m.(responsePacket); ok {
rs.pktMgr.readyPacket(pkt)
} else {
@ -195,7 +195,7 @@ func (rs RequestServer) sendPacket(m encoding.BinaryMarshaler) error {
return nil
}
func (rs RequestServer) sendError(p ider, err error) error {
func (rs *RequestServer) sendError(p ider, err error) error {
return rs.sendPacket(statusFromError(p, err))
}

View File

@ -328,7 +328,7 @@ func (svr *Server) Serve() error {
}
// Wrap underlying connection methods to use packetManager
func (svr Server) sendPacket(m encoding.BinaryMarshaler) error {
func (svr *Server) sendPacket(m encoding.BinaryMarshaler) error {
if pkt, ok := m.(responsePacket); ok {
svr.pktMgr.readyPacket(pkt)
} else {
@ -337,7 +337,7 @@ func (svr Server) sendPacket(m encoding.BinaryMarshaler) error {
return nil
}
func (svr Server) sendError(p ider, err error) error {
func (svr *Server) sendError(p ider, err error) error {
return svr.sendPacket(statusFromError(p, err))
}