MCPcopy Create free account
hub / github.com/bytedance/bolt / waitForTaskDriversToFinish

Function waitForTaskDriversToFinish

bolt/exec/tests/utils/Cursor.cpp:37–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35namespace bytedance::bolt::exec::test {
36
37bool 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
56exec::BlockingReason TaskQueue::enqueue(
57 RowVectorPtr vector,

Callers 4

waitForTaskFinishMethod · 0.85
readCursorFunction · 0.85
waitForTaskFinishFunction · 0.85
checkTaskErrorMethod · 0.85

Calls 3

numFinishedDriversMethod · 0.80
numTotalDriversMethod · 0.80
isRunningMethod · 0.45

Tested by

no test coverage detected