Skip to content

Commit e2736fd

Browse files
authored
network: Avoid notifier re-creating in connect function
1 parent db9110e commit e2736fd

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

canopen/network.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ def connect(self, *args, **kwargs) -> Network:
107107
if self.bus is None:
108108
self.bus = can.Bus(*args, **kwargs)
109109
logger.info("Connected to '%s'", self.bus.channel_info)
110-
self.notifier = can.Notifier(self.bus, self.listeners, self.NOTIFIER_CYCLE)
110+
if self.notifier is None:
111+
self.notifier = can.Notifier(self.bus, self.listeners, self.NOTIFIER_CYCLE)
111112
return self
112113

113114
def disconnect(self) -> None:
@@ -123,7 +124,13 @@ def disconnect(self) -> None:
123124
if self.bus is not None:
124125
self.bus.shutdown()
125126
self.bus = None
126-
self.check()
127+
try:
128+
self.check()
129+
except Exception as e:
130+
raise e
131+
finally:
132+
# Release notifier after check
133+
self.notifier = None
127134

128135
def __enter__(self):
129136
return self

0 commit comments

Comments
 (0)