"""
A thread to handle network concerns
import network.asyncore_pollchoose as asyncore
from network import connectionpool
from queues import excQueue
from .threads import StoppableThread
class BMNetworkThread(StoppableThread):
"""Main network thread"""
name = "Asyncore"
def run(self):
try:
while not self._stopped:
connectionpool.pool.loop()
except Exception as e:
excQueue.put((self.name, e))
raise
def stopThread(self):
super(BMNetworkThread, self).stopThread()
for i in connectionpool.pool.listeningSockets.values():
i.close()
except: # nosec B110 # pylint:disable=bare-except
pass
for i in connectionpool.pool.outboundConnections.values():
for i in connectionpool.pool.inboundConnections.values():
# just in case
asyncore.close_all()