Fixed race condition bug on multithreading

This commit is contained in:
Matt Hill
2014-05-04 14:07:57 -05:00
parent 0bf3f674ee
commit d6c79299fb
2 changed files with 11 additions and 18 deletions

View File

@@ -109,22 +109,18 @@ class PlateDispatcher
return img;
}
bool hasPlate()
{
bool plateAvailable;
mMutex.lock();
plateAvailable = plateRegions.size() > 0;
mMutex.unlock();
return plateAvailable;
}
PlateRegion nextPlate()
bool nextPlate(PlateRegion* plateRegion)
{
tthread::lock_guard<tthread::mutex> guard(mMutex);
PlateRegion plateRegion = plateRegions[plateRegions.size() - 1];
if (plateRegions.size() == 0)
return false;
*plateRegion = plateRegions[plateRegions.size() - 1];
plateRegions.pop_back();
return plateRegion;
return true;
}
void appendPlate(PlateRegion plate)