| 130 | } |
| 131 | |
| 132 | void QueueManager::cancel(const String & query_id) |
| 133 | { |
| 134 | std::lock_guard lk(mutex); |
| 135 | for (auto & [vw, vw_queue] : query_queues) |
| 136 | { |
| 137 | LOG_DEBUG(log, "cancel {} from vw {}", query_id, vw); |
| 138 | for (auto iter = vw_queue.begin(); iter != vw_queue.end(); iter++) |
| 139 | { |
| 140 | if ((*iter)->query_id == query_id) |
| 141 | { |
| 142 | (*iter)->result = QueueResultStatus::QueueCancel; |
| 143 | (*iter)->cv.notify_one(); |
| 144 | vw_queue.erase(iter); |
| 145 | return; |
| 146 | } |
| 147 | } |
| 148 | } |
| 149 | } |
| 150 | |
| 151 | QueueManager::QueueManager(ContextWeakMutablePtr context_) : WithContext(context_), log(&Poco::Logger::get("QueueManager")) |
| 152 | { |