projects
/
metaproxy-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cgi: POSTed content - part of MP-562
[metaproxy-moved-to-github.git]
/
src
/
thread_pool_observer.cpp
diff --git
a/src/thread_pool_observer.cpp
b/src/thread_pool_observer.cpp
index
ce37235
..
a52cd92
100644
(file)
--- a/
src/thread_pool_observer.cpp
+++ b/
src/thread_pool_observer.cpp
@@
-1,5
+1,5
@@
/* This file is part of Metaproxy.
/* 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
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)
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;
m_p->m_no_threads_waiting--;
if (m_p->m_stop_flag)
break;
-
+
in = m_p->m_input.front();
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();
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))
while (it != m_p->m_input.end())
{
if ((*it)->cleanup(info))
+ {
+ delete *it;
it = m_p->m_input.erase(it);
it = m_p->m_input.erase(it);
+ }
else
it++;
}
else
it++;
}