| 151 | |
| 152 | |
| 153 | void PushingAsyncPipelineExecutor::start() |
| 154 | { |
| 155 | if (started) |
| 156 | return; |
| 157 | |
| 158 | started = true; |
| 159 | |
| 160 | data = std::make_unique<Data>(); |
| 161 | data->executor = std::make_shared<PipelineExecutor>(pipeline.processors, pipeline.process_list_element); |
| 162 | data->executor->setReadProgressCallback(pipeline.getReadProgressCallback()); |
| 163 | data->source = pushing_source.get(); |
| 164 | |
| 165 | auto func = [&, thread_group = CurrentThread::getGroup()]() |
| 166 | { |
| 167 | threadFunction(*data, thread_group, pipeline.getNumThreads(), pipeline.getConcurrencyControl()); |
| 168 | }; |
| 169 | |
| 170 | data->thread = ThreadFromGlobalPool(std::move(func)); |
| 171 | } |
| 172 | |
| 173 | [[noreturn]] static void throwOnExecutionStatus(PipelineExecutor::ExecutionStatus status) |
| 174 | { |
nothing calls this directly
no test coverage detected