additional_ordering_point for ms-queue
[cdsspec-compiler.git] / benchmark / ms-queue / my_queue.c
index f59d77736a13ec6b4d343772a6a0117c921123bf..6d86c4acc21076ad3e78fbfd67a6d18288552647 100644 (file)
@@ -164,6 +164,13 @@ void enqueue(queue_t *q, unsigned int val)
                        &tail,
                        MAKE_POINTER(node, get_count(tail) + 1),
                        release, relaxed);
+       /**
+               @Begin
+               @Additional_ordering_point_define_check: true
+               @Label: Enqueue_Additional_Tail_LoadOrCAS
+               @End
+       */
+
 }
 
 /**
@@ -198,7 +205,7 @@ bool dequeue(queue_t *q, int *retVal)
                 * relaxed (it introduces a bug when there's two dequeuers and one
                 * enqueuer)
                 */
-               tail = atomic_load_explicit(&q->tail, relaxed);
+               tail = atomic_load_explicit(&q->tail, acquire);
                /**
                        @Begin
                        @Potential_commit_point_define: true