Skip to content

Commit 3f12885

Browse files
feat(state flush): add state attributes to avoid nested flushes
1 parent 4f998d1 commit 3f12885

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

trame_server/state.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def __init__(
6767
self._state_listeners = share(
6868
internal, "_state_listeners", StateChangeHandler(self._change_callbacks)
6969
)
70+
self._is_flushing = share(internal, "_is_flushing", {"value": False})
7071
self._parent_state = internal
7172
self._children_state = []
7273
self._ready_flag = ready
@@ -277,6 +278,10 @@ def flush(self):
277278
if not self.is_ready:
278279
return None
279280

281+
if self._is_flushing["value"]:
282+
return None
283+
284+
self._is_flushing["value"] = True
280285
keys = set()
281286
if len(self._pending_update):
282287
_keys = set(self._pending_update.keys())
@@ -320,6 +325,7 @@ def flush(self):
320325
# Check if state change from state listeners
321326
_keys = set(self._pending_update.keys())
322327

328+
self._is_flushing["value"] = False
323329
return keys
324330

325331
@property

0 commit comments

Comments
 (0)