Explorar o código

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

Taddeus Kroes %!s(int64=12) %!d(string=hai) anos
pai
achega
9ce84ce011
Modificáronse 1 ficheiros con 10 adicións e 4 borrados
  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