Przeglądaj źródła

simplify random

Darien Raymond 9 lat temu
rodzic
commit
1a1383c2ea
1 zmienionych plików z 6 dodań i 5 usunięć
  1. 6 5
      transport/internet/udp/hub.go

+ 6 - 5
transport/internet/udp/hub.go

@@ -41,15 +41,16 @@ func NewUDPPayloadQueue(option ListenOption) *UDPPayloadQueue {
 
 func (this *UDPPayloadQueue) Enqueue(payload UDPPayload) {
 	size := len(this.queue)
+	idx := 0
+	if size > 1 {
+		idx = dice.Roll(size)
+	}
 	for i := 0; i < size; i++ {
-		idx := 0
-		if size > 1 {
-			idx = dice.Roll(size)
-		}
 		select {
-		case this.queue[idx] <- payload:
+		case this.queue[idx%size] <- payload:
 			return
 		default:
+			idx++
 		}
 	}
 }