Peter Surda
ba4162d7fe
- get rid of per-connection writeQueue/receiveQueue, and instead use strings and locking - minor code cleanup - all state handlers now should set expectBytes - almost all data processing happens in ReceiveDataThread, and AsyncoreThread is almost only I/O (plus TLS). AsyncoreThread simply puts the connection object into the queue when it has some data for processing - allow poll, epoll and kqueue handlers. kqueue is untested and unoptimised, poll and epoll seem to work ok (linux) - stack depth threshold handler in decode_payload_content, this is recursive and I think was causing occasional RuntimeErrors. Fixes #964 - longer asyncore loops, as now data is handled in ReceiveDataThread - randomise node order when deciding what to download. Should prevent retries being stuck to the same node - socks cleanup (socks5 works ok, socks4a untested but should work too)
18 lines
636 B
Python
18 lines
636 B
Python
import Queue
|
|
|
|
from class_objectProcessorQueue import ObjectProcessorQueue
|
|
from multiqueue import MultiQueue
|
|
|
|
workerQueue = Queue.Queue()
|
|
UISignalQueue = Queue.Queue()
|
|
addressGeneratorQueue = Queue.Queue()
|
|
# receiveDataThreads dump objects they hear on the network into this queue to be processed.
|
|
objectProcessorQueue = ObjectProcessorQueue()
|
|
invQueue = MultiQueue()
|
|
addrQueue = MultiQueue()
|
|
portCheckerQueue = Queue.Queue()
|
|
peerDiscoveryQueue = Queue.Queue()
|
|
receiveDataQueue = Queue.Queue()
|
|
apiAddressGeneratorReturnQueue = Queue.Queue(
|
|
) # The address generator thread uses this queue to get information back to the API thread.
|