X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_frontend_net.cpp;fp=src%2Ffilter_frontend_net.cpp;h=b347ad2d4bad4f836c50a1e2ec503ffd1e670e75;hb=722c498e016a6eb94044c608a7d1dcb21e5013cd;hp=a3ab5f78e00189466cf0de573624a43545a04a5f;hpb=73bda3a639851ca17dd1449b94203600a32cd838;p=metaproxy-moved-to-github.git diff --git a/src/filter_frontend_net.cpp b/src/filter_frontend_net.cpp index a3ab5f7..b347ad2 100644 --- a/src/filter_frontend_net.cpp +++ b/src/filter_frontend_net.cpp @@ -103,7 +103,7 @@ namespace metaproxy_1 { ~ThreadPoolPackage(); IThreadPoolMsg *handle(); void result(const char *t_info); - + bool cleanup(void *info); private: yaz_timing_t timer; mp::ZAssocChild *m_assoc_child; @@ -155,6 +155,13 @@ mp::ThreadPoolPackage::~ThreadPoolPackage() delete m_package; } +bool mp::ThreadPoolPackage::cleanup(void *info) +{ + mp::Session *ses = (mp::Session *) info; + + return *ses == m_package->session(); +} + void mp::ThreadPoolPackage::result(const char *t_info) { m_assoc_child->m_no_requests--; @@ -284,7 +291,8 @@ void mp::ZAssocChild::failNotify() mp::ThreadPoolPackage *tp = new mp::ThreadPoolPackage(p, this, m_msg_config); p->copy_route(*m_package); - m_thread_pool_observer->put(tp); + m_thread_pool_observer->cleanup(tp, &m_session); + m_thread_pool_observer->put(tp); } void mp::ZAssocChild::timeoutNotify()