MCPcopy Create free account
hub / github.com/ERGO-Code/HiGHS / sync

Function sync

highs/parallel/HighsParallel.h:49–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47}
48
49inline void sync(HighsSplitDeque* localDeque) {
50 std::pair<HighsSplitDeque::Status, HighsTask*> popResult = localDeque->pop();
51 switch (popResult.first) {
52 case HighsSplitDeque::Status::kEmpty:
53 assert(false);
54 // fall through
55 case HighsSplitDeque::Status::kOverflown:
56 // when the local deque is overflown the task has been executed during
57 // spawn already
58 break;
59 case HighsSplitDeque::Status::kStolen:
60 HighsTaskExecutor::sync_stolen_task(localDeque, popResult.second);
61 break;
62 case HighsSplitDeque::Status::kWork:
63 popResult.second->run();
64 }
65}
66
67inline void sync() { sync(HighsTaskExecutor::getThisWorkerDeque()); }
68class TaskGroup {

Callers 8

iterateTasksMethod · 0.85
chooseColumnSliceMethod · 0.85
syncMethod · 0.85
taskWaitMethod · 0.85
~StreamBufImplMethod · 0.85
overflowMethod · 0.85
~ostreambufMethod · 0.85
fibFunction · 0.85

Calls 2

popMethod · 0.45
runMethod · 0.45

Tested by 1

fibFunction · 0.68