clean shutdown with udp
parent
aa16b66332
commit
01777c8c3e
|
|
@ -33,18 +33,26 @@ func (udp UDP) listen() {
|
|||
for udp.ctx.Err() == nil {
|
||||
buff := make([]byte, 256)
|
||||
n, _, err := udp.conn.ReadFrom(buff)
|
||||
if err != nil {
|
||||
if err != nil && udp.ctx.Err() == nil {
|
||||
panic(err)
|
||||
}
|
||||
if debugging {
|
||||
log.Printf("raw.UDP.Read() => %s", buff[:n])
|
||||
}
|
||||
udp.c <- buff[:n]
|
||||
select {
|
||||
case udp.c <- buff[:n]:
|
||||
case <-udp.ctx.Done():
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (udp UDP) Read() []byte {
|
||||
return <-udp.c
|
||||
select {
|
||||
case v := <-udp.c:
|
||||
return v
|
||||
case <-udp.ctx.Done():
|
||||
return []byte{}
|
||||
}
|
||||
}
|
||||
|
||||
func (udp UDP) Close() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue