Make delayed update active only by request #2180
Merged
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.
Needs #2177 merged in first.
The currently code activates delayed update on every acceptMove which is safe during p-by-p or T-move but algorithms making a move and a reverse move are not safe to use DU. developers are required to put a completeUpdates() after every acceptMove. This can cause potential bugs for new developers.
So I introduced a flag safe_to_delay in TWF and WFC acceptMove and default to false. So drivers known safe for delayed update have safe_to_delay = true requested, other places (NLPP forces and derivatives) where the safety is unknown, default SM-1 update will be called at every acceptMove to ensure the inverse matrix is safe to use.