From 6238bb7f2d0b4952c3ae6691a13eb52d487cebf0 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Tue, 3 Oct 2017 15:55:07 +0200 Subject: [PATCH] Multiplexing support for peers (disabled by default) --- src/Worker/WorkerManager.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Worker/WorkerManager.py b/src/Worker/WorkerManager.py index 4b775934..3fadcf4f 100644 --- a/src/Worker/WorkerManager.py +++ b/src/Worker/WorkerManager.py @@ -140,9 +140,13 @@ class WorkerManager(object): return config.workers # Add new worker - def addWorker(self, peer): + def addWorker(self, peer, multiplexing=False): key = peer.key - if key not in self.workers and len(self.workers) < self.getMaxWorkers(): + if len(self.workers) > self.getMaxWorkers(): + return False + if multiplexing: # Add even if we already have worker for this peer + key = "%s/%s" % (key, len(self.workers)) + if key not in self.workers: # We dont have worker for that peer and workers num less than max worker = Worker(self, peer) self.workers[key] = worker