Fix Metaproxy stops logging after check config failed MP-590
[metaproxy-moved-to-github.git] / src / thread_pool_observer.cpp
index ce37235..a52cd92 100644 (file)
@@ -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
@@ -166,6 +166,12 @@ void ThreadPoolSocketObserver::socketNotify(int event)
     }
 }
 
+void ThreadPoolSocketObserver::get_thread_info(int &tbusy, int &total)
+{
+    tbusy = m_p->m_no_threads - m_p->m_no_threads_waiting;
+    total = m_p->m_no_threads;
+}
+
 void ThreadPoolSocketObserver::run(void *p)
 {
     while(1)
@@ -179,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();
@@ -214,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++;
     }