void Pipeline::clearItems() { while( !received.empty() ) { IBucket *b = received.top(); if(b->getPipelineId() != minItemCntr){ break; } received.pop(); minItemCntr++; if( b->empty() ) doneItem(b); else buffer.push(b); } }