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
This commit is contained in:
Peter Šurda 2017-07-05 08:57:44 +02:00
parent 27f5de0f9c
commit e00a02206b
Signed by: PeterSurda
GPG Key ID: 0C5F50C0B5F37D87
3 changed files with 35 additions and 0 deletions

View File

@ -57,6 +57,7 @@ from network.networkthread import BMNetworkThread
from network.receivequeuethread import ReceiveQueueThread from network.receivequeuethread import ReceiveQueueThread
from network.announcethread import AnnounceThread from network.announcethread import AnnounceThread
from network.invthread import InvThread from network.invthread import InvThread
from network.addrthread import AddrThread
from network.downloadthread import DownloadThread from network.downloadthread import DownloadThread
# Helper Functions # Helper Functions
@ -276,6 +277,9 @@ class Main:
downloadThread = DownloadThread() downloadThread = DownloadThread()
downloadThread.daemon = True downloadThread.daemon = True
downloadThread.start() downloadThread.start()
state.addrThread = AddrThread()
state.addrThread.daemon = True
state.addrThread.start()
connectToStream(1) connectToStream(1)

30
src/network/addrthread.py Normal file
View File

@ -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)

View File

@ -24,6 +24,7 @@ sqlReady = False # set to true by sqlTread when ready for processing
maximumNumberOfHalfOpenConnections = 0 maximumNumberOfHalfOpenConnections = 0
invThread = None invThread = None
addrThread = None
ownAddresses = {} ownAddresses = {}