We could have checked for the cancelTick here as well, but I figured since it is a pretty rare case, we can just check it after we synchronize (instead of giving an extra condition to check in the normal case that is will be false 90% of the time).