{
ConditionalWait::ScopedLock lock( mConditionalWait );
- if( mAnimationTasks.end() == std::find( mAnimationTasks.begin(), mAnimationTasks.end(), task ) )
+ if( mCompletedTasks.end() == std::find( mCompletedTasks.begin(), mCompletedTasks.end(), task ) )
{
mCompletedTasks.push_back( task );
mCompletedTasks.clear();
// pop out the next task from the queue
- if( !mAnimationTasks.empty() && !mNeedToSleep )
+ while( !mAnimationTasks.empty() && !mNeedToSleep )
{
std::vector< VectorAnimationTaskPtr >::iterator next = mAnimationTasks.begin();
VectorAnimationTaskPtr nextTask = *next;