Skip to content

Commit e45c722

Browse files
committed
exchange handler stats fix
1 parent 9b80f45 commit e45c722

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

trinity/protocol/common/handlers.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Any,
44
Dict,
55
List,
6+
Set,
67
Type,
78
)
89

@@ -17,13 +18,16 @@
1718

1819

1920
class BaseExchangeHandler:
21+
_exchange_managers: Set[ExchangeManager[Any, Any, Any]]
22+
2023
@property
2124
@abstractmethod
2225
def _exchanges(self) -> Dict[str, Type[BaseExchange[Any, Any, Any]]]:
2326
pass
2427

2528
def __init__(self, peer: BasePeer) -> None:
2629
self._peer = peer
30+
self._exchange_managers = set()
2731

2832
for attr, exchange_cls in self._exchanges.items():
2933
if hasattr(self, attr):
@@ -32,9 +36,9 @@ def __init__(self, peer: BasePeer) -> None:
3236
"present on the class: {1}".format(attr, getattr(self, attr))
3337
)
3438
manager: ExchangeManager[Any, Any, Any] = ExchangeManager(self._peer, peer.cancel_token)
39+
self._exchange_managers.add(manager)
3540
exchange = exchange_cls(manager)
3641
setattr(self, attr, exchange)
3742

3843
def get_stats(self) -> List[str]:
39-
manager_attrs = self._exchanges.keys()
40-
return [getattr(self, attr).get_stats() for attr in manager_attrs]
44+
return [exchange_manager.get_stats() for exchange_manager in self._exchange_managers]

0 commit comments

Comments
 (0)