|
|
@@ -26,44 +26,44 @@ namespace hainan
|
|
|
|
|
|
void ThreadPool::Stop()
|
|
|
{
|
|
|
- VLOG(2) << "Stop";
|
|
|
+ VLOG(3) << "Stop";
|
|
|
mutex::scoped_lock lock(mtx);
|
|
|
running = false;
|
|
|
cond.notify_all();
|
|
|
while(work_num > 0)
|
|
|
{
|
|
|
- VLOG(2) << "done tasks size = " << tasks.size();
|
|
|
+ VLOG(3) << "done tasks size = " << tasks.size();
|
|
|
done.wait(lock);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void ThreadPool::Runner()
|
|
|
{
|
|
|
- VLOG(2) << "thread start";
|
|
|
+ VLOG(3) << "thread start";
|
|
|
bool continued = true;
|
|
|
while(continued)
|
|
|
{
|
|
|
function<void (void)> task;
|
|
|
{
|
|
|
- VLOG(2) << "loop lock";
|
|
|
+ VLOG(3) << "loop lock";
|
|
|
mutex::scoped_lock lock(mtx);
|
|
|
- VLOG(2) << "loop lock ok";
|
|
|
+ VLOG(3) << "loop lock ok";
|
|
|
while(running && tasks.empty())
|
|
|
{
|
|
|
cond.wait(lock);
|
|
|
- VLOG(2) << "cond";
|
|
|
+ VLOG(3) << "cond";
|
|
|
}
|
|
|
if(!tasks.empty())
|
|
|
{
|
|
|
- VLOG(2) << "fetch task";
|
|
|
+ VLOG(3) << "fetch task";
|
|
|
task = tasks.front();
|
|
|
tasks.pop_front();
|
|
|
}
|
|
|
continued = running || !tasks.empty();
|
|
|
- VLOG(2) << "continued = " << continued
|
|
|
+ VLOG(3) << "continued = " << continued
|
|
|
<< "running = " << running
|
|
|
<< " tasks size = " << tasks.size();
|
|
|
- VLOG(2) << "loop unlock";
|
|
|
+ VLOG(3) << "loop unlock";
|
|
|
}
|
|
|
|
|
|
if(task)
|
|
|
@@ -73,14 +73,14 @@ namespace hainan
|
|
|
}
|
|
|
if(__sync_sub_and_fetch(&work_num, 1) == 0)
|
|
|
{
|
|
|
- VLOG(2) << "work_num = " << work_num;
|
|
|
+ VLOG(3) << "work_num = " << work_num;
|
|
|
done.notify_one();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
bool ThreadPool::PushTask(function<void (void)> task)
|
|
|
{
|
|
|
- VLOG(2) << "push task";
|
|
|
+ VLOG(3) << "push task";
|
|
|
{
|
|
|
mutex::scoped_lock lock(mtx);
|
|
|
if(!running)
|
|
|
@@ -89,7 +89,7 @@ namespace hainan
|
|
|
}
|
|
|
tasks.push_back(task);
|
|
|
}
|
|
|
- VLOG(2) << "push task unlock";
|
|
|
+ VLOG(3) << "push task unlock";
|
|
|
cond.notify_one();
|
|
|
return true;
|
|
|
}
|