mirror of https://gitee.com/bigwinds/arangodb
Destroy all traverser engines when AQL is shut down.
This commit is contained in:
parent
cf2a47e52c
commit
fd3f3a88e7
|
@ -171,3 +171,16 @@ size_t TraverserEngineRegistry::numberRegisteredEngines() {
|
|||
return _engines.size();
|
||||
}
|
||||
|
||||
/// @brief destroy all registered engines
|
||||
void TraverserEngineRegistry::destroyAll() {
|
||||
std::vector<TraverserEngineID> engines;
|
||||
{
|
||||
READ_LOCKER(readLocker, _lock);
|
||||
for (auto& p : _engines) {
|
||||
engines.push_back(p.first);
|
||||
}
|
||||
}
|
||||
for (auto& i : engines) {
|
||||
destroy(i, true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,6 +72,9 @@ class TraverserEngineRegistry {
|
|||
/// @brief return number of registered engines
|
||||
size_t numberRegisteredEngines();
|
||||
|
||||
/// @brief destroy all registered engines
|
||||
void destroyAll();
|
||||
|
||||
private:
|
||||
|
||||
void destroy(TraverserEngineID, bool doLock);
|
||||
|
|
|
@ -86,6 +86,7 @@ void AqlFeature::stop() {
|
|||
}
|
||||
LOG_TOPIC(DEBUG, Logger::QUERIES) << "AQL feature stopped";
|
||||
QueryRegistryFeature::QUERY_REGISTRY->destroyAll();
|
||||
TraverserEngineRegistryFeature::TRAVERSER_ENGINE_REGISTRY->destroyAll();
|
||||
|
||||
// Wait until all AQL queries are done
|
||||
while (true) {
|
||||
|
|
Loading…
Reference in New Issue