void TaskDispatcher::removeFinishedWatchers(void) { QMutexLocker locker(&mutex_); std::vector<QObject*> temp; for (size_t i = 0, i_end = active_watchers_.size(); i < i_end; ++ i) { QFutureWatcher<void>* watcher = dynamic_cast<QFutureWatcher<void>*>(active_watchers_[i]); if (!watcher->isFinished()) temp.push_back(active_watchers_[i]); else watcher->deleteLater(); } active_watchers_ = temp; return; }