MCPcopy Create free account
hub / github.com/MaskRay/ccls / dequeueAll

Method dequeueAll

src/threaded_queue.hh:98–115  ·  view source on GitHub ↗

Return all elements in the queue.

Source from the content-addressed store, hash-verified

96
97 // Return all elements in the queue.
98 std::vector<T> dequeueAll() {
99 std::lock_guard<std::mutex> lock(mutex_);
100
101 total_count_ = 0;
102
103 std::vector<T> result;
104 result.reserve(priority_.size() + queue_.size());
105 while (!priority_.empty()) {
106 result.emplace_back(std::move(priority_.front()));
107 priority_.pop_front();
108 }
109 while (!queue_.empty()) {
110 result.emplace_back(std::move(queue_.front()));
111 queue_.pop_front();
112 }
113
114 return result;
115 }
116
117 // Returns true if the queue is empty. This is lock-free.
118 bool isEmpty() { return total_count_ == 0; }

Callers 3

launchStdoutFunction · 0.80
mainLoopFunction · 0.80
standaloneFunction · 0.80

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected