File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -118,9 +118,9 @@ def _rx_thread(self, bus: BusABC):
118
118
self .exception = exc
119
119
if self ._loop is not None :
120
120
self ._loop .call_soon_threadsafe (self ._on_error , exc )
121
- else :
122
- self ._on_error (exc )
123
- raise
121
+ raise
122
+ elif not self ._on_error (exc ):
123
+ raise
124
124
125
125
def _on_message_available (self , bus : BusABC ):
126
126
msg = bus .recv (0 )
@@ -134,10 +134,15 @@ def _on_message_received(self, msg: Message):
134
134
# Schedule coroutine
135
135
self ._loop .create_task (res )
136
136
137
- def _on_error (self , exc : Exception ):
138
- for listener in self .listeners :
139
- if hasattr (listener , "on_error" ):
140
- listener .on_error (exc )
137
+ def _on_error (self , exc : Exception ) -> bool :
138
+ listeners_with_on_error = [
139
+ listener for listener in self .listeners if hasattr (listener , "on_error" )
140
+ ]
141
+
142
+ for listener in listeners_with_on_error :
143
+ listener .on_error (exc )
144
+
145
+ return bool (listeners_with_on_error )
141
146
142
147
def add_listener (self , listener : Listener ):
143
148
"""Add new Listener to the notification list.
You can’t perform that action at this time.
0 commit comments