Skip to content

Commit 7eebcef

Browse files
committed
Fix data race in message
1 parent 0610569 commit 7eebcef

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

message.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,22 @@ func newMessageFromBuf(b []byte) (*message, error) {
4848
}
4949

5050
func (m *message) add(key, val string, expired int64, deleted bool) {
51+
m.mux.Lock()
5152
m.Entries[key] = entry{
5253
Key: key,
5354
Val: val,
5455
Expired: expired,
5556
Deleted: deleted,
5657
}
58+
m.mux.Unlock()
5759
}
5860

5961
// Encode implements mesh.GossipData.Encode
6062
// TODO: split the encoding by X number of keys
6163
func (m *message) Encode() [][]byte {
64+
m.mux.RLock()
65+
defer m.mux.RUnlock()
66+
6267
b, err := marshal(m)
6368
if err != nil {
6469
log.Printf("failed to encode message: %v", err)

0 commit comments

Comments
 (0)