TimerPool fixoutManipulator
git-svn-id: svn://db.shs.com.ru/pip@70 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -309,8 +309,10 @@ _PITimerImp_Pool::Pool * _PITimerImp_Pool::Pool::instance() {
|
||||
void _PITimerImp_Pool::Pool::add(_PITimerImp_Pool * t) {
|
||||
//piCout << "add ...";
|
||||
lock();
|
||||
if (!timers.contains(t))
|
||||
if (!timers.contains(t)) {
|
||||
timers << t;
|
||||
to_remove.removeOne(t);
|
||||
}
|
||||
unlock();
|
||||
//piCout << "add done";
|
||||
}
|
||||
@@ -319,7 +321,7 @@ void _PITimerImp_Pool::Pool::add(_PITimerImp_Pool * t) {
|
||||
void _PITimerImp_Pool::Pool::remove(_PITimerImp_Pool * t) {
|
||||
//piCout << "remove ...";
|
||||
lock();
|
||||
timers.removeOne(t);
|
||||
to_remove.removeOne(t);
|
||||
unlock();
|
||||
//piCout << "remove done";
|
||||
}
|
||||
@@ -328,6 +330,9 @@ void _PITimerImp_Pool::Pool::remove(_PITimerImp_Pool * t) {
|
||||
void _PITimerImp_Pool::Pool::run() {
|
||||
piForeach (_PITimerImp_Pool * t, timers)
|
||||
t->threadFunc();
|
||||
piForeach (_PITimerImp_Pool * t, to_remove)
|
||||
timers.removeOne(t);
|
||||
to_remove.clear();
|
||||
//while (t->threadFunc());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user