mirror of
https://github.com/go-ping/ping.git
synced 2025-09-19 09:12:45 +00:00
Fix CPU use (#40)
* Move default case out of select block. * Add defers to close resources. * `go fmt` cleanup.
This commit is contained in:
committed by
Cameron Sparr
parent
9db3df4bca
commit
3a0b5a7d8e
14
ping.go
14
ping.go
@@ -286,6 +286,7 @@ func (p *Pinger) run() {
|
||||
|
||||
var wg sync.WaitGroup
|
||||
recv := make(chan *packet, 5)
|
||||
defer close(recv)
|
||||
wg.Add(1)
|
||||
go p.recvICMP(conn, recv, &wg)
|
||||
|
||||
@@ -295,7 +296,9 @@ func (p *Pinger) run() {
|
||||
}
|
||||
|
||||
timeout := time.NewTicker(p.Timeout)
|
||||
defer timeout.Stop()
|
||||
interval := time.NewTicker(p.Interval)
|
||||
defer interval.Stop()
|
||||
|
||||
for {
|
||||
select {
|
||||
@@ -316,12 +319,11 @@ func (p *Pinger) run() {
|
||||
if err != nil {
|
||||
fmt.Println("FATAL: ", err.Error())
|
||||
}
|
||||
default:
|
||||
if p.Count > 0 && p.PacketsRecv >= p.Count {
|
||||
close(p.done)
|
||||
wg.Wait()
|
||||
return
|
||||
}
|
||||
}
|
||||
if p.Count > 0 && p.PacketsRecv >= p.Count {
|
||||
close(p.done)
|
||||
wg.Wait()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user