Skip to content

Add vtkm::exec::TaskBase

This commit splits out the base class from user derived worklets, from the base class of tasks provided to the DeviceAdapter::Schedule.

This is done for a few reasons. The first is that we reduce the minimum size of user worklets. Previously the users worklet would hold a reference to the error message, and so would the wrapper class added when calling DeviceAdapter::Schedule. Now we only have the users worklet holding a reference.

Second, by refactoring to have two base classes we can better improve the documentation on what responsibilities FunctorBase.h has, what subclasses should do. This actually all leads to the understanding that FunctorBase is really needs a rename to better express what it does.

Lastly numerous methods had parameters of type vtkm::exec::FunctorBase&, so that they could report errors. In general this isn't a problem but it was odd that you could pass the wrapper around a worklet to these methods, and not just the users worklet.

Merge request reports