X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fthread_pool_observer.cpp;h=a52cd92d2a7a296910d71bb36c315b0877d4fb59;hb=586d78659d671683f33ec55f4a7d32b28e345ccd;hp=e9dd20cbc5b9085469b400a8e68f96b71759a007;hpb=5ea0250959340c9cde8603e99c8f967eadf1990f;p=metaproxy-moved-to-github.git diff --git a/src/thread_pool_observer.cpp b/src/thread_pool_observer.cpp index e9dd20c..a52cd92 100644 --- a/src/thread_pool_observer.cpp +++ b/src/thread_pool_observer.cpp @@ -1,5 +1,5 @@ /* This file is part of Metaproxy. - Copyright (C) 2005-2012 Index Data + Copyright (C) Index Data Metaproxy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -185,9 +185,9 @@ void ThreadPoolSocketObserver::run(void *p) m_p->m_no_threads_waiting--; if (m_p->m_stop_flag) break; - + in = m_p->m_input.front(); - m_p->m_input.pop_front(); + m_p->m_input.pop_front(); m_p->m_cond_input_full.notify_all(); } IThreadPoolMsg *out = in->handle(); @@ -220,7 +220,10 @@ void ThreadPoolSocketObserver::cleanup(IThreadPoolMsg *m, void *info) while (it != m_p->m_input.end()) { if ((*it)->cleanup(info)) + { + delete *it; it = m_p->m_input.erase(it); + } else it++; }