| 35 | namespace bytedance::bolt::exec::test { |
| 36 | |
| 37 | bool waitForTaskDriversToFinish(exec::Task* task, uint64_t maxWaitMicros) { |
| 38 | BOLT_USER_CHECK(!task->isRunning()); |
| 39 | uint64_t waitMicros = 0; |
| 40 | while ((task->numFinishedDrivers() != task->numTotalDrivers()) && |
| 41 | (waitMicros < maxWaitMicros)) { |
| 42 | const uint64_t kWaitMicros = 1000; |
| 43 | std::this_thread::sleep_for(std::chrono::microseconds(kWaitMicros)); |
| 44 | waitMicros += kWaitMicros; |
| 45 | } |
| 46 | |
| 47 | if (task->numFinishedDrivers() != task->numTotalDrivers()) { |
| 48 | LOG(ERROR) << "Timed out waiting for all drivers of task " << task->taskId() |
| 49 | << " to finish. Finished drivers: " << task->numFinishedDrivers() |
| 50 | << ". Total drivers: " << task->numTotalDrivers(); |
| 51 | } |
| 52 | |
| 53 | return task->numFinishedDrivers() == task->numTotalDrivers(); |
| 54 | } |
| 55 | |
| 56 | exec::BlockingReason TaskQueue::enqueue( |
| 57 | RowVectorPtr vector, |
no test coverage detected