updateProperty(value);
else if(value->priority == AbstractPropertyType::High)
{
- value->destroyed.push_back([this](AbstractPropertyType* v)
- {
- updatePropertyQueueHigh.remove(v);
- });
updatePropertyQueueHigh.append(value);
}
else if(value->priority == AbstractPropertyType::Normal)
{
- value->destroyed.push_back([this](AbstractPropertyType* v)
- {
- updatePropertyQueue.remove(v);
- });
updatePropertyQueue.append(value);
}
else if(value->priority == AbstractPropertyType::Low)
{
- value->destroyed.push_back([this](AbstractPropertyType* v)
- {
- updatePropertyQueueLow.remove(v);
- });
updatePropertyQueueLow.append(value);
}
}
{
std::lock_guard<std::mutex> lock(mutex);
- if(contains(mQueue, item))
+ auto i = mQueue.begin();
+ while(true)
{
- mQueue.erase(std::find(mQueue.begin(), mQueue.end(), item));
+ i = find(i, mQueue.end(), item);
+ if (i == mQueue.end())
+ break;
+ i = mQueue.erase(i);
}
+
mQueue.push_back(item);
}