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