From 64de8836d4924862d6cc352f250b802e346c29be Mon Sep 17 00:00:00 2001 From: Pixel Date: Fri, 6 Apr 2012 11:03:57 -0700 Subject: Improving a bit the way threaded task managers are being stopped. --- includes/TaskMan.h | 5 +++++ tests/test-Http.cc | 7 ++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/includes/TaskMan.h b/includes/TaskMan.h index 6c446b7..68aaaf6 100644 --- a/includes/TaskMan.h +++ b/includes/TaskMan.h @@ -47,6 +47,11 @@ class TaskMan { r->threadStart(); return r; } + static void stopThreadedTaskMan(TaskManThread * tmt) { + tmt->stopMe(0); + tmt->join(); + delete tmt; + } bool stopped() { return m_stopped; } template static T * createTask(T * t, Task * stick = NULL) { TaskMan::registerTask(t, stick); return t; } diff --git a/tests/test-Http.cc b/tests/test-Http.cc index 9d4d0e3..bd0ef49 100644 --- a/tests/test-Http.cc +++ b/tests/test-Http.cc @@ -146,11 +146,8 @@ void MainTask::Do() { s->stop(); - for (int i = 0; i < NTHREADS; i++) { - tms[i]->stopMe(); - tms[i]->join(); - delete tms[i]; - } + for (int i = 0; i < NTHREADS; i++) + TaskMan::stopThreadedTaskMan(tms[i]); Printer::log(M_STATUS, "Test::Http passed."); } -- cgit v1.2.3