Refactored so that the dsl_dataset_t gets passed rather than copied to the background thread.