Skip to content

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.

Edited by Christos Tsolakis

Merge request reports