mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
capture unexpected exceptions in EventThread
This commit is contained in:
@@ -247,17 +247,18 @@ class EventThread(threading.Thread):
|
|||||||
def run(self) -> None:
|
def run(self) -> None:
|
||||||
"""get and run events until shutdown."""
|
"""get and run events until shutdown."""
|
||||||
with self.log_execution("EVENT THREAD"):
|
with self.log_execution("EVENT THREAD"):
|
||||||
self._inner_run()
|
event_emitter = ffi.gc(
|
||||||
|
lib.dc_get_event_emitter(self.account._dc_context),
|
||||||
|
lib.dc_event_emitter_unref,
|
||||||
|
)
|
||||||
|
while not self._marked_for_shutdown:
|
||||||
|
with self.swallow_and_log_exception("Unexpected error in event thread"):
|
||||||
|
event = lib.dc_get_next_event(event_emitter)
|
||||||
|
if event == ffi.NULL or self._marked_for_shutdown:
|
||||||
|
break
|
||||||
|
self._process_event(event)
|
||||||
|
|
||||||
def _inner_run(self):
|
def _process_event(self, event) -> None:
|
||||||
event_emitter = ffi.gc(
|
|
||||||
lib.dc_get_event_emitter(self.account._dc_context),
|
|
||||||
lib.dc_event_emitter_unref,
|
|
||||||
)
|
|
||||||
while not self._marked_for_shutdown:
|
|
||||||
event = lib.dc_get_next_event(event_emitter)
|
|
||||||
if event == ffi.NULL or self._marked_for_shutdown:
|
|
||||||
break
|
|
||||||
evt = lib.dc_event_get_id(event)
|
evt = lib.dc_event_get_id(event)
|
||||||
data1 = lib.dc_event_get_data1_int(event)
|
data1 = lib.dc_event_get_data1_int(event)
|
||||||
# the following code relates to the deltachat/_build.py's helper
|
# the following code relates to the deltachat/_build.py's helper
|
||||||
|
|||||||
Reference in New Issue
Block a user