ambd: remove redundant code in core
authorPetr Nechaev <petr.nechaev@cogentembedded.com>
Sun, 29 Mar 2015 16:48:12 +0000 (19:48 +0300)
committerPetr Nechaev <petr.nechaev@cogentembedded.com>
Mon, 30 Mar 2015 11:52:21 +0000 (14:52 +0300)
ambd/core.cpp
lib/asyncqueue.hpp

index 02e4a08..419c078 100644 (file)
@@ -166,26 +166,14 @@ void Core::updateProperty(AbstractPropertyType *value, const string & uuid)
                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);
        }
 }
index 61ff412..0e4da9a 100644 (file)
@@ -82,10 +82,15 @@ public:
                {
                        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);
                }