feat(sync-v2): Wait for sync internal methods to finish before initiating next syncing cycle #845
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.
Motivation
Previously, the
_run_sync()
method checked for ongoing mempool syncs or open streamings to prevent concurrent cycle runs. Despite the presence of the_is_running: bool
flag, it was prematurely marked asfalse
due to mempool syncs and streamings returning at the start, not the end, of their execution. This led to complexity and potential errors in_run_sync()
. This PR streamlines this process for better clarity and reliability.Acceptance Criteria
_deferred_blockchain_streaming
when we request the peer to open a block streaming._deferred_blockchain_streaming
when the streaming ends._deferred_transactions_streaming
when we request the peer to open a transactions streaming._deferred_transactions_streaming
when the streaming ends.run_sync_transactions()
to wait for its streaming to end.run_sync_blocks()
to wait for its streaming to end.mempool_manager.run()
to return a deferred that is resolved when the execution is complete.Checklist
master
, confirm this code is production-ready and can be included in future releases as soon as it gets merged