diff --git a/raft/rafttest/node.go b/raft/rafttest/node.go index add21da0b56..dfd376c73ed 100644 --- a/raft/rafttest/node.go +++ b/raft/rafttest/node.go @@ -17,6 +17,7 @@ package rafttest import ( "context" "log" + "math/rand" "sync" "time" @@ -79,9 +80,14 @@ func (n *node) start() { } n.storage.Append(rd.Entries) time.Sleep(time.Millisecond) - // TODO: make send async, more like real world... + + // simulate async send, more like real world... for _, m := range rd.Messages { - n.iface.send(m) + mlocal := m + go func() { + time.Sleep(time.Duration(rand.Int63n(10)) * time.Millisecond) + n.iface.send(mlocal) + }() } n.Advance() case m := <-n.iface.recv():