Skip to content

Commit bbe2c60

Browse files
committed
feat(me): concurrency send
1 parent 1ba17fc commit bbe2c60

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

gold/link/me.go

+10-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/fumiama/WireGold/config"
1717
"github.com/fumiama/WireGold/gold/head"
1818
"github.com/fumiama/WireGold/gold/p2p"
19+
"github.com/fumiama/WireGold/helper"
1920
"github.com/fumiama/WireGold/lower"
2021
)
2122

@@ -245,9 +246,14 @@ func (m *Me) sendAllSameDst(packet []byte) (n int) {
245246
logrus.Warnln("[me] drop packet to", dst.String()+":"+strconv.Itoa(int(m.DstPort())), ": nil nexthop")
246247
return
247248
}
248-
_, err := lnk.WriteAndPut(head.NewPacket(head.ProtoData, m.SrcPort(), lnk.peerip, m.DstPort(), packet), false)
249-
if err != nil {
250-
logrus.Warnln("[me] write to peer", lnk.peerip, "err:", err)
251-
}
249+
pcp := helper.MakeBytes(len(packet))
250+
copy(pcp, packet)
251+
go func(packet []byte) {
252+
defer helper.PutBytes(packet)
253+
_, err := lnk.WriteAndPut(head.NewPacket(head.ProtoData, m.SrcPort(), lnk.peerip, m.DstPort(), packet), false)
254+
if err != nil {
255+
logrus.Warnln("[me] write to peer", lnk.peerip, "err:", err)
256+
}
257+
}(pcp)
252258
return
253259
}

0 commit comments

Comments
 (0)