Parallel radix sort implementation copies threader class
vtkm/cont/internal/ParallelRadixSort.h
provides an implementation of a parallel radix sort that is used by multiple device adapters. The device adapter defines a "threader" class that manages creating new threads and hands it to the implementation classes.
Internally, these classes make several copies of the provided threader class (such as here). Generally speaking, copying threader classes is a no-no. To get around this, the device adapters have to create a resource manager (like std::shared_ptr
) to ensure there is only one real copy. But it would be better if this was handled internally by ParallelRadixSort.h.