Do not recompute key
This commit is contained in:
parent
5111d9baf6
commit
b1dba59170
|
@ -158,9 +158,10 @@ class KwThreadedSegment(ThreadedSegment):
|
||||||
def key(**kwargs):
|
def key(**kwargs):
|
||||||
return frozenset(kwargs.items())
|
return frozenset(kwargs.items())
|
||||||
|
|
||||||
def render(self, update_value, update_first, **kwargs):
|
def render(self, update_value, update_first, key=None, **kwargs):
|
||||||
queries, crashed = update_value
|
queries, crashed = update_value
|
||||||
key = self.key(**kwargs)
|
if key is None:
|
||||||
|
key = self.key(**kwargs)
|
||||||
if key in crashed:
|
if key in crashed:
|
||||||
return self.crashed_value
|
return self.crashed_value
|
||||||
|
|
||||||
|
@ -169,8 +170,8 @@ class KwThreadedSegment(ThreadedSegment):
|
||||||
except KeyError:
|
except KeyError:
|
||||||
with self.write_lock:
|
with self.write_lock:
|
||||||
self.new_queries.append(key)
|
self.new_queries.append(key)
|
||||||
if update_first and self.update_first:
|
if self.do_update_first or self.run_once:
|
||||||
return self.render(update_value=self.get_update_value(True), update_first=False, **kwargs)
|
return self.render(update_value=self.get_update_value(True), update_first=False, key=key, **kwargs)
|
||||||
else:
|
else:
|
||||||
update_state = None
|
update_state = None
|
||||||
|
|
||||||
|
@ -207,8 +208,9 @@ class KwThreadedSegment(ThreadedSegment):
|
||||||
|
|
||||||
return update_value
|
return update_value
|
||||||
|
|
||||||
def set_state(self, interval=None, shutdown_event=None, **kwargs):
|
def set_state(self, interval=None, update_first=True, shutdown_event=None, **kwargs):
|
||||||
self.set_interval(interval)
|
self.set_interval(interval)
|
||||||
|
self.do_update_first = update_first and self.update_first
|
||||||
self.shutdown_event = shutdown_event or Event()
|
self.shutdown_event = shutdown_event or Event()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
Loading…
Reference in New Issue