try to toggle background activity without a race condition #2665
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.
Tried to avoid another lock around state change (watch has RWLock inside), but it seems that its still possible to have a race there, though in the opposite direction (we can shutdown what was a racy start)
Invoking
task_mgr::shutdown_tasks
directly inset_state
is problematic, sinceset_state
is synchronous and shutdown_tasks is asynchronous. Tried to go this way and stopped when in some place RWLockGuard started to be held across await points. Maybe worth it to try untying it furthersubmitting as WIP, still need to test it