bool ShouldRemove( const clPtr<iTask> T, size_t ID ) { if ( T->GetTaskID() == ID ) { T->Exit(); return true; } return false; }
void clWorkerThread::AddTask( const clPtr<iTask>& Task ) { tthread::lock_guard<tthread::mutex> Lock( FTasksMutex ); // non-zero IDs should be unique if ( size_t ID = Task->GetTaskID() ) { for ( std::list< clPtr<iTask> >::iterator i = FPendingTasks.begin(); i != FPendingTasks.end(); ++i ) { // LASSERT( (*i)->GetTaskID() != ID ); } } FPendingTasks.push_back( Task ); FCondition.notify_all(); }