~ThreadPoolPackage();
IThreadPoolMsg *handle();
void result(const char *t_info);
-
+ bool cleanup(void *info);
private:
yaz_timing_t timer;
mp::ZAssocChild *m_assoc_child;
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--;
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()
delete m_p->az[i];
delete [] m_p->az;
}
+ m_p->az = 0;
+}
+
+void mp::filter::FrontendNet::stop() const
+{
+ if (m_p->az)
+ {
+ size_t i;
+ for (i = 0; i<m_p->m_ports.size(); i++)
+ m_p->az[i]->server("");
+ }
}
bool mp::My_Timer_Thread::timeout()