Spawn message loops for outgoing connections in a sepatare pool managed by ConnectionServer

This commit is contained in:
Vadim Ushakov 2021-10-23 21:41:14 +07:00
parent fe24e17baa
commit e612f93631
2 changed files with 4 additions and 1 deletions

View file

@ -167,7 +167,7 @@ class Connection(object):
# Detect protocol
event_connected = self.event_connected
self.send({"cmd": "handshake", "req_id": 0, "params": self.getHandshakeInfo()})
gevent.spawn(self.messageLoop)
self.server.outgoing_pool.spawn(self.messageLoop)
connect_res = event_connected.get() # Wait for handshake
if self.sock:
self.sock.settimeout(timeout_before)

View file

@ -79,6 +79,9 @@ class ConnectionServer(object):
self.pool = Pool(500) # do not accept more than 500 connections
self.managed_pools["incoming"] = self.pool
self.outgoing_pool = Pool(None)
self.managed_pools["outgoing"] = self.outgoing_pool
# Bittorrent style peerid
self.peer_id = "-UT3530-%s" % CryptHash.random(12, "base64")