New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GitStatusMonitor could start multiple commands #9700
GitStatusMonitor could start multiple commands #9700
Conversation
1fab8da
to
79473a0
Compare
If If the monitor was inactivated while a status command was running (minimizing/restoring the app, start a modal dialog) the current command is canceled to give the latest data. lock() will ensure that more than one "active" command is not running. However, one control variable was reset also if the command was canceled which allowed the canceled command to be followed by another. Also changed to not request a new status command if a command is already running. (current status should be good enough, if there are pending changes they will be requested later). Some refactoring and cleanups.
79473a0
to
4a94321
Compare
still under test (a first variant of this PR stopped updating after a few days and did not recover) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, worked stable several times over minimum one week without restart
Plan to merge this in a couple of days. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
If the monitor was inactivated while a status command was running (minimizing/restoring the app, start a modal dialog) the current command is canceled to give the latest data. lock() will ensure that more than one "active" command is not running. However, one control variable was reset also if the command was canceled which allowed the canceled command to be followed by another. Also changed to not request a new status command if a command is already running. (Current status should be good enough, if there are pending changes they will be requested later.) Cherry picked essential changes from master: gitextensions#9700/e2630a6c5b09452b0a0ef7a3ff169083c3fcb7c4
If the monitor was inactivated while a status command was running (minimizing/restoring the app, start a modal dialog) the current command is canceled to give the latest data. lock() will ensure that more than one "active" command is not running. However, one control variable was reset also if the command was canceled which allowed the canceled command to be followed by another. Also changed to not request a new status command if a command is already running. (Current status should be good enough, if there are pending changes they will be requested later.) Cherry picked essential changes from master: #9700/e2630a6c5b09452b0a0ef7a3ff169083c3fcb7c4
Fixes #9615
See also #9700 for 3.5, with the essential correction (most of the changes was done first to find the problem).
Proposed changes
If If the monitor was inactivated while a status command was running
(minimizing/restoring the app, start a modal dialog) the current command
is canceled to give the latest data.
lock() will ensure that more than one "active" command is not running.
However, one control variable was reset also if the command was canceled
which allowed the canceled command to be followed by another.
Also changed to not request a new status command if a command is already
running. (current status should be good enough, if there are pending
changes they will be requested later).
Some refactoring and cleanups.
Test methodology
Manual testing
Merge strategy
I agree that the maintainer squash merge this PR (if the commit message is clear).
✒️ I contribute this code under The Developer Certificate of Origin.