From fe19bd2fce5f08d555d5fc44d0cfe9fe1891876b Mon Sep 17 00:00:00 2001 From: shortcutme Date: Mon, 7 Nov 2016 23:25:25 +0100 Subject: [PATCH] Faster findOptionalTasks --- src/Worker/WorkerManager.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Worker/WorkerManager.py b/src/Worker/WorkerManager.py index 9c206017..5b0e9763 100644 --- a/src/Worker/WorkerManager.py +++ b/src/Worker/WorkerManager.py @@ -155,12 +155,13 @@ class WorkerManager(object): found = collections.defaultdict(list) # { found_hash: [peer1, peer2...], ...} for peer in self.site.peers.values(): - if not peer.hashfield: + if not peer.has_hashfield: continue + hashfield_set = set(peer.hashfield) # Finding in set is much faster for task in optional_tasks: optional_hash_id = task["optional_hash_id"] - if optional_hash_id in peer.hashfield: + if optional_hash_id in hashfield_set: found[optional_hash_id].append(peer) if task["peers"] and peer not in task["peers"]: task["peers"].append(peer)