void PackageService::onFinish() { FinishSqliteVFS(); // Turn off all sticky flags - NO MERCY! for (PackageNameMap::iterator itr = _linkedPackages.begin(), end = _linkedPackages.end(); itr != end; ++itr) { itr->second->_stayResident = false; itr->second->_stayForCurrent = false; itr->second->_stayForNext = false; } // And compact so that all packages get disposed compact(); // If Something's remaining, we're in danger! for (PackageNameMap::iterator itr = _linkedPackages.begin(), end = _linkedPackages.end(); itr != end; ++itr) { Package* pack = itr->second; LOG(0, "*** Package '%s': still alive: %d usage, requires:\n", pack->getName().c_str(), pack->getUseCount()); if (pack->getRequiredList().empty()) LOG(0, " <none>\n"); else pack->printDependancy(1); } // Terminate AsyncLoader if (_asyncLoader) { _asyncLoader->Terminate(); } safeDelete(_asyncLoader); }