Conversation
arturovt
force-pushed
the
fix/service-worker-concurrent-checkForUpdate
branch
from
May 22, 2025 16:59
2bcbcd5 to
62d7870
Compare
atscott
reviewed
Jun 3, 2025
…te checks Previously, multiple simultaneous calls to `checkForUpdate()` could result in redundant fetches and hashing of the update manifest, leading to unnecessary network and CPU usage. This change introduces a mechanism to track an in-progress update check using a cached promise (`ongoingCheckForUpdate`). Subsequent calls to `checkForUpdate()` while a check is in progress will return the same promise instead of triggering a new request. Once the check completes (successfully or not), the cached promise is cleared, allowing future update checks to proceed normally. This improves efficiency and prevents overlapping update logic in applications that may invoke `checkForUpdate()` from multiple sources (e.g. polling, manual triggers).
arturovt
force-pushed
the
fix/service-worker-concurrent-checkForUpdate
branch
from
June 3, 2025 17:34
62d7870 to
88916e1
Compare
atscott
approved these changes
Jun 3, 2025
Contributor
|
This PR was merged into the repository by commit 6adf022. The changes were merged into the following branches: main, 20.0.x |
kirjs
pushed a commit
that referenced
this pull request
Jun 3, 2025
…te checks (#61443) Previously, multiple simultaneous calls to `checkForUpdate()` could result in redundant fetches and hashing of the update manifest, leading to unnecessary network and CPU usage. This change introduces a mechanism to track an in-progress update check using a cached promise (`ongoingCheckForUpdate`). Subsequent calls to `checkForUpdate()` while a check is in progress will return the same promise instead of triggering a new request. Once the check completes (successfully or not), the cached promise is cleared, allowing future update checks to proceed normally. This improves efficiency and prevents overlapping update logic in applications that may invoke `checkForUpdate()` from multiple sources (e.g. polling, manual triggers). PR Close #61443
|
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Previously, multiple simultaneous calls to
checkForUpdate()could result in redundant fetches and hashing of the update manifest, leading to unnecessary network and CPU usage.This change introduces a mechanism to track an in-progress update check using a cached promise (
ongoingCheckForUpdate). Subsequent calls tocheckForUpdate()while a check is in progress will return the same promise instead of triggering a new request.Once the check completes (successfully or not), the cached promise is cleared, allowing future update checks to proceed normally.
This improves efficiency and prevents overlapping update logic in applications that may invoke
checkForUpdate()from multiple sources (e.g. polling, manual triggers).