This repository has been archived on 2024-12-12. You can view files and clone it, but cannot push or open issues or pull requests.
PyBitmessage-2024-12-12/src/network/networkthread.py

42 lines
1.2 KiB
Python
Raw Normal View History

2019-12-19 12:24:53 +01:00
"""
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):
2019-12-19 12:24:53 +01:00
"""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):
2017-05-29 14:35:08 +02:00
super(BMNetworkThread, self).stopThread()
for i in connectionpool.pool.listeningSockets.values():
try:
i.close()
2024-03-04 16:37:03 +01:00
except: # nosec B110 # pylint:disable=bare-except
pass
for i in connectionpool.pool.outboundConnections.values():
try:
i.close()
2024-03-04 16:37:03 +01:00
except: # nosec B110 # pylint:disable=bare-except
pass
for i in connectionpool.pool.inboundConnections.values():
try:
i.close()
2024-03-04 16:37:03 +01:00
except: # nosec B110 # pylint:disable=bare-except
pass
# just in case
asyncore.close_all()