From fc0982587bc78648c918ae83deacca3e90d7e809 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 15 May 2013 22:50:51 +0900 Subject: [PATCH] Release elements in routineCommands_ on destruction --- src/DownloadEngine.cc | 15 +++++++++------ src/DownloadEngine.h | 2 -- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/DownloadEngine.cc b/src/DownloadEngine.cc index 71607ca0..18aa963b 100644 --- a/src/DownloadEngine.cc +++ b/src/DownloadEngine.cc @@ -107,18 +107,21 @@ DownloadEngine::DownloadEngine(const SharedHandle& eventPoll) sessionId_.assign(&sessionId[0], & sessionId[sizeof(sessionId)]); } +namespace { +void cleanQueue(std::deque& commands) { + std::for_each(commands.begin(), commands.end(), Deleter()); + commands.clear(); +} +} // namespace + DownloadEngine::~DownloadEngine() { - cleanQueue(); + cleanQueue(commands_); + cleanQueue(routineCommands_); #ifdef HAVE_ARES_ADDR_NODE setAsyncDNSServers(0); #endif // HAVE_ARES_ADDR_NODE } -void DownloadEngine::cleanQueue() { - std::for_each(commands_.begin(), commands_.end(), Deleter()); - commands_.clear(); -} - namespace { void executeCommand(std::deque& commands, Command::STATUS statusFilter) diff --git a/src/DownloadEngine.h b/src/DownloadEngine.h index afe51307..b26d3dda 100644 --- a/src/DownloadEngine.h +++ b/src/DownloadEngine.h @@ -183,8 +183,6 @@ public: // processed. Otherwise, returns 0. int run(bool oneshot=false); - void cleanQueue(); - bool addSocketForReadCheck(const SharedHandle& socket, Command* command); bool deleteSocketForReadCheck(const SharedHandle& socket,