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: ...@@ -172,6 +172,8 @@ class BaseSetting:
return SearcherFactory.create(self.search_target).search() return SearcherFactory.create(self.search_target).search()
def _on_success(result): def _on_success(result):
if self._destroyed:
return
self.map = result self.map = result
self._normalize_map() self._normalize_map()
self._map_ready = True self._map_ready = True
...@@ -182,15 +184,21 @@ class BaseSetting: ...@@ -182,15 +184,21 @@ class BaseSetting:
return self._get_backend_range_sync() return self._get_backend_range_sync()
def _on_success(result): def _on_success(result):
if self._destroyed:
return
self.map = self._build_map_from_range(result) self.map = self._build_map_from_range(result)
self._normalize_map() self._normalize_map()
self._map_ready = True self._map_ready = True
self._notify_map_updated() self._notify_map_updated()
def _on_error(exc): def _on_error(exc):
if self._destroyed:
return
self.logger.error(f"Map load failed for {self.name}: {exc}") self.logger.error(f"Map load failed for {self.name}: {exc}")
def _on_done(): def _on_done():
if self._destroyed:
return
self._map_loading = False self._map_loading = False
self._set_busy(False) self._set_busy(False)
...@@ -218,13 +226,19 @@ class BaseSetting: ...@@ -218,13 +226,19 @@ class BaseSetting:
return self._get_backend_value_sync() return self._get_backend_value_sync()
def _on_success(value): def _on_success(value):
if self._destroyed:
return
self._current_value = value self._current_value = value
self._update_widget() self._update_widget()
def _on_error(exc): def _on_error(exc):
if self._destroyed:
return
self.logger.error(f"Value load failed for {self.name}: {exc}") self.logger.error(f"Value load failed for {self.name}: {exc}")
def _on_done(): def _on_done():
if self._destroyed:
return
self._value_loading = False self._value_loading = False
self._set_busy(False) self._set_busy(False)
...@@ -244,9 +258,13 @@ class BaseSetting: ...@@ -244,9 +258,13 @@ class BaseSetting:
return self._set_backend_value_sync(value) return self._set_backend_value_sync(value)
def _on_error(exc): def _on_error(exc):
if self._destroyed:
return
self.logger.error(f"Value save failed for {self.name}: {exc}") self.logger.error(f"Value save failed for {self.name}: {exc}")
def _on_done(): def _on_done():
if self._destroyed:
return
self._set_busy(False) self._set_busy(False)
self._executor.submit(_save, on_error=_on_error, on_done=_on_done) 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