mirror of https://github.com/v2ray/v2ray-core
simplify random
parent
a14795e1e6
commit
1a1383c2ea
|
@ -41,15 +41,16 @@ func NewUDPPayloadQueue(option ListenOption) *UDPPayloadQueue {
|
||||||
|
|
||||||
func (this *UDPPayloadQueue) Enqueue(payload UDPPayload) {
|
func (this *UDPPayloadQueue) Enqueue(payload UDPPayload) {
|
||||||
size := len(this.queue)
|
size := len(this.queue)
|
||||||
for i := 0; i < size; i++ {
|
|
||||||
idx := 0
|
idx := 0
|
||||||
if size > 1 {
|
if size > 1 {
|
||||||
idx = dice.Roll(size)
|
idx = dice.Roll(size)
|
||||||
}
|
}
|
||||||
|
for i := 0; i < size; i++ {
|
||||||
select {
|
select {
|
||||||
case this.queue[idx] <- payload:
|
case this.queue[idx%size] <- payload:
|
||||||
return
|
return
|
||||||
default:
|
default:
|
||||||
|
idx++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue