Collapse vtkAlgorithm reset to abort updates.
This MR fixes a known issue async/paraview#38 : vtkObjectWrapper::UpdateState
may mess up the Abort flag of a vtkAlgorithm
since Preview()
is setting the flag and Process()
is clearing it unconditionally in a different thread. This may result in updating the vtkAlgorithm using old values. To replicate try the SC demo; update the wavelet slider fast and at the end stop at the smallest value. The RTAnalytic source should drop all previous values and quickly produce a small wavelet but this is not always the case.
In this MR we tag each vtkObjectWrapper
with a Preview
and Process
counter that keep track the number of invocations of each method on the object. The abort flag is cleared only after all Preview
making thus sure that vtkAlgorithm will be executed with the latest only values.
We may still miss a few updates since updates are happening asynchronously in two different threads, but this fix improves the abort behavior significantly.