Dmitri Bogomolov
7a89109fc9
and use logging without risk of circular import. Only subpackage
that imports from debug is bitmessageqt - because it also uses
debug.resetLogging().
Instead of from debug import logger is now recommended to use:
import logging
logger = logging.getLogger('default')
All subclasses of StoppableThread now have a logger attribute.
All threading related stuff except for set_thread_name()
was moved from helper_threading to network.threads.
Fixed two my mistakes from previous edit of debug in a1a8d3a
:
- logger.handlers is not dict but iterable
- sys.excepthook should be set unconditionally
32 lines
839 B
Python
32 lines
839 B
Python
import Queue
|
|
|
|
import state
|
|
from network.connectionpool import BMConnectionPool
|
|
from queues import addrQueue
|
|
from threads import StoppableThread
|
|
|
|
|
|
class AddrThread(StoppableThread):
|
|
name = "AddrBroadcaster"
|
|
|
|
def run(self):
|
|
while not state.shutdown:
|
|
chunk = []
|
|
while True:
|
|
try:
|
|
data = addrQueue.get(False)
|
|
chunk.append((data[0], data[1]))
|
|
if len(data) > 2:
|
|
source = BMConnectionPool().getConnectionByAddr(data[2])
|
|
except Queue.Empty:
|
|
break
|
|
except KeyError:
|
|
continue
|
|
|
|
# finish
|
|
|
|
addrQueue.iterate()
|
|
for i in range(len(chunk)):
|
|
addrQueue.task_done()
|
|
self.stop.wait(1)
|