minor fix
[cdsspec-compiler.git] / benchmark / mpmc-queue / mpmc-queue.h
index 863710139c2e196d0e0ae8a40f6d6325b4a16989..aba325a05635692217c814cb482610e4aeeb5d04 100644 (file)
@@ -60,22 +60,31 @@ public:
                                return NULL;
                        }
                @DefineFunc:
-                       bool has_elem(elem *e) {
+                       int has_elem(t_element *pos) {
                                for (int i = 0; i < size(list); i++) {
                                        elem *existing = (elem*) elem_at_index(list, i);
-                                       if (e->pos == existing->pos) {
-                                               return true;
+                                       if (pos == existing->pos) {
+                                               return i;
                                        }
                                }
-                               return false;
+                               return -1;
+                       }
+               @DefineFunc:
+                       void prepare(t_element *pos) {
+                               elem *e = new_elem(
+                               push_back(list, e);
                        }
                @DefineFunc:
-                       bool insert_elem(elem *e) {
+                       void publish(t_element *pos) {
+                               elem *e = new_elem(
                                push_back(list, e);
                        }
                @DefineFunc:
                        void consume_elem(t_element *pos) {
-                               
+                               int idx = has_elem(pos);
+                               if (idx == -1)
+                                       return;
+                               remove_at_index(list, idx);
                        }
 
        */