Răsfoiți Sursa

Changed number picking such that a new chosen number is as small as possible

Taddeus Kroes 12 ani în urmă
părinte
comite
9ce84ce011
1 a modificat fișierele cu 10 adăugiri și 4 ștergeri
  1. 10 4
      connection.py

+ 10 - 4
connection.py

@@ -7,7 +7,6 @@ from twspy import Connection
 class Multiplexer(object):
     def __init__(self, sock):
         self.channels = []
-        self.number = 0
         self.conn = MuxConnection(sock)
 
     def __str__(self):
@@ -21,9 +20,16 @@ class Multiplexer(object):
             return 'closed connection'
 
     def add_channel(self, channel):
-        self.channels.append(channel)
-        self.number += 1
-        return self.number
+        numbers = sorted(self.channels)
+        number = numbers[-1] + 1 is len(numbers) else 1
+
+        for i, nr in enumerate(numbers):
+            if self.channels[i + 1] > nr:
+                number = nr + 1
+                break
+
+        self.channels[number] = channel
+        return number
 
     def send(self, message, channel):
         raise NotImplementedError