Commit 10a03579 authored by Roman Alifanov's avatar Roman Alifanov

settings: add destroyed check in async callbacks

parent cba5cfdd
......@@ -172,6 +172,8 @@ class BaseSetting:
return SearcherFactory.create(self.search_target).search()
def _on_success(result):
if self._destroyed:
return
self.map = result
self._normalize_map()
self._map_ready = True
......@@ -182,15 +184,21 @@ class BaseSetting:
return self._get_backend_range_sync()
def _on_success(result):
if self._destroyed:
return
self.map = self._build_map_from_range(result)
self._normalize_map()
self._map_ready = True
self._notify_map_updated()
def _on_error(exc):
if self._destroyed:
return
self.logger.error(f"Map load failed for {self.name}: {exc}")
def _on_done():
if self._destroyed:
return
self._map_loading = False
self._set_busy(False)
......@@ -218,13 +226,19 @@ class BaseSetting:
return self._get_backend_value_sync()
def _on_success(value):
if self._destroyed:
return
self._current_value = value
self._update_widget()
def _on_error(exc):
if self._destroyed:
return
self.logger.error(f"Value load failed for {self.name}: {exc}")
def _on_done():
if self._destroyed:
return
self._value_loading = False
self._set_busy(False)
......@@ -244,9 +258,13 @@ class BaseSetting:
return self._set_backend_value_sync(value)
def _on_error(exc):
if self._destroyed:
return
self.logger.error(f"Value save failed for {self.name}: {exc}")
def _on_done():
if self._destroyed:
return
self._set_busy(False)
self._executor.submit(_save, on_error=_on_error, on_done=_on_done)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment