diff --git a/trace/tcp_ipv4.go b/trace/tcp_ipv4.go index 4bf1c29..01e27c5 100644 --- a/trace/tcp_ipv4.go +++ b/trace/tcp_ipv4.go @@ -264,7 +264,7 @@ func (t *TCPTracer) send(ttl int) error { return err } t.inflightRequestLock.Lock() - hopCh := make(chan Hop) + hopCh := make(chan Hop, 1) t.inflightRequest[int(sequenceNumber)] = hopCh t.inflightRequestLock.Unlock() /* diff --git a/trace/tcp_ipv6.go b/trace/tcp_ipv6.go index 801d1c9..f622a41 100644 --- a/trace/tcp_ipv6.go +++ b/trace/tcp_ipv6.go @@ -251,7 +251,7 @@ func (t *TCPTracerv6) send(ttl int) error { } // log.Println(ttl, sequenceNumber) t.inflightRequestLock.Lock() - hopCh := make(chan Hop) + hopCh := make(chan Hop, 1) t.inflightRequest[int(sequenceNumber)] = hopCh t.inflightRequestLock.Unlock() diff --git a/trace/udp.go b/trace/udp.go index 81e3716..c9bc423 100644 --- a/trace/udp.go +++ b/trace/udp.go @@ -225,7 +225,7 @@ func (t *UDPTracer) send(ttl int) error { // 在对inflightRequest进行写操作的时候应该加锁保护,以免多个goroutine协程试图同时写入造成panic t.inflightRequestLock.Lock() - hopCh := make(chan Hop) + hopCh := make(chan Hop, 1) t.inflightRequest[srcPort] = hopCh t.inflightRequestLock.Unlock() defer func() {