Allow player + save debounced updates to be handled synchronously - #232
Merged
Conversation
tudddorrr
force-pushed
the
awaitable-debounced-updates
branch
from
August 3, 2026 21:16
b31916f to
076ef61
Compare
tudddorrr
force-pushed
the
awaitable-debounced-updates
branch
from
August 3, 2026 21:21
076ef61 to
6e14b90
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Debounced API base class
TaloDebouncedAPI, a reusable base class for APIs that need debounced batched updates with per-call result tracking, flush support, and queuing of updates that arrive while one is in-flight.Player and save APIs return update results
PlayersAPIandSavesAPInow extendTaloDebouncedAPIinstead of managing their own debounce timers.debounce_update()returns aSignalthat resolves with aPlayerUpdateResultorSaveUpdateResult, letting callers await the outcome of a specific debounced operation (e.g. to inspect rejected props).player_updatedandsave_updatedsignals notify listeners when debounced updates settle.Prop mutation methods now return values
set_prop,delete_prop,set_prop_array,delete_prop_array,insert_into_prop_array, andremove_from_prop_arrayonEntityWithPropsandPlayerchanged return type fromvoidtoVariant, returning a signal/awaiter when an update is queued so callers can chainawaiton the result.Graceful flush on quit
TaloManager._handle_quit()now flushes pending debounced player and save updates before exiting, preventing data loss from in-flight or queued updates at shutdown.Debounce timer stop support
DebounceTimergained astop()override that clears the pending flag, enablingflush_updates()to force-immediate execution of queued work.