| 187 | } |
| 188 | |
| 189 | Status ChildQueryExecutor::ExecAsync(vector<ChildQuery>&& child_queries) { |
| 190 | DCHECK(!child_queries.empty()); |
| 191 | lock_guard<SpinLock> lock(lock_); |
| 192 | DCHECK(child_queries_.empty()); |
| 193 | DCHECK(child_queries_thread_.get() == NULL); |
| 194 | if (is_cancelled_) return Status::OK(); |
| 195 | child_queries_ = move(child_queries); |
| 196 | RETURN_IF_ERROR(Thread::Create("query-exec-state", "async child queries", |
| 197 | bind(&ChildQueryExecutor::ExecChildQueries, this), &child_queries_thread_)); |
| 198 | is_running_ = true; |
| 199 | return Status::OK(); |
| 200 | } |
| 201 | |
| 202 | void ChildQueryExecutor::ExecChildQueries() { |
| 203 | for (ChildQuery& child_query : child_queries_) { |
no test coverage detected