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

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
invThread = None
addrThread = None
ownAddresses = {}