arangod/RestServer/DatabaseFeature.cpp
// signal to all databases that active cursors can be wiped
// this speeds up the actual shutdown because no waiting is necessary
// until the cursors happen to free their underlying transactions
signal to all databases that active cursors can be wiped
this speeds up the actual shutdown because no waiting is necessary
until the cursors happen to free their underlying transactions
signal to all databases that active cursors can be wiped this speeds up the actual shutdown because no waiting is necessary until the cursors happen to free their underlying transactions
void DatabaseFeature::beginShutdown() {
  auto unuser(_databasesProtector.use());
  auto theLists = _databasesLists.load();
  for (auto& p : theLists->_databases) {
    TRI_vocbase_t* vocbase = p.second;
    TRI_ASSERT(vocbase != nullptr);
    vocbase->cursorRepository()->garbageCollect(true);
  }
}
void DatabaseFeature :: beginShutdown ( ) { auto unuser ( _databasesProtector . use ( ) ) ; auto theLists = _databasesLists . load ( ) ; for ( auto & p : theLists -> _databases ) { TRI_vocbase_t * vocbase = p . second ; TRI_ASSERT ( vocbase != nullptr ) ; vocbase -> cursorRepository ( ) -> garbageCollect ( true ) ; } }
signal to all databases that active cursors can be wiped
this speeds up the actual shutdown because no waiting is necessary
until the cursors happen to free their underlying transactions
signal to all databases that active cursors can be wiped this speeds up the actual shutdown because no waiting is necessary until the cursors happen to free their underlying transactions
// iterate over all databases // throw away all open cursors in order to speed up shutdown