From e00a02206b875c5aa8b3cb09e8ea2bf735ef7913 Mon Sep 17 00:00:00 2001 From: Peter Surda Date: Wed, 5 Jul 2017 08:57:44 +0200 Subject: [PATCH] AddrThread - this thread is for spreading new/updated addresses in active connections, analogous to the InvThread - it doesn't do anything yet, this is just a dummy queue at the moment --- src/bitmessagemain.py | 4 ++++ src/network/addrthread.py | 30 ++++++++++++++++++++++++++++++ src/state.py | 1 + 3 files changed, 35 insertions(+) create mode 100644 src/network/addrthread.py diff --git a/src/bitmessagemain.py b/src/bitmessagemain.py index a2d951ed..461486f7 100755 --- a/src/bitmessagemain.py +++ b/src/bitmessagemain.py @@ -57,6 +57,7 @@ from network.networkthread import BMNetworkThread from network.receivequeuethread import ReceiveQueueThread from network.announcethread import AnnounceThread from network.invthread import InvThread +from network.addrthread import AddrThread from network.downloadthread import DownloadThread # Helper Functions @@ -276,6 +277,9 @@ class Main: downloadThread = DownloadThread() downloadThread.daemon = True downloadThread.start() + state.addrThread = AddrThread() + state.addrThread.daemon = True + state.addrThread.start() connectToStream(1) diff --git a/src/network/addrthread.py b/src/network/addrthread.py new file mode 100644 index 00000000..a6c401ab --- /dev/null +++ b/src/network/addrthread.py @@ -0,0 +1,30 @@ +import Queue +import threading + +import addresses +from helper_threading import StoppableThread +from network.connectionpool import BMConnectionPool +from queues import addrQueue +import protocol +import state + +class AddrThread(threading.Thread, StoppableThread): + def __init__(self): + threading.Thread.__init__(self, name="AddrThread") + self.initStop() + self.name = "AddrThread" + + def run(self): + while not state.shutdown: + chunk = [] + while True: + try: + data = addrQueue.get(False) + chunk.append((data[0], data[1])) + except Queue.Empty: + break + + #finish + + addrQueue.iterate() + self.stop.wait(1) diff --git a/src/state.py b/src/state.py index 618b6c92..1b12831e 100644 --- a/src/state.py +++ b/src/state.py @@ -24,6 +24,7 @@ sqlReady = False # set to true by sqlTread when ready for processing maximumNumberOfHalfOpenConnections = 0 invThread = None +addrThread = None ownAddresses = {}