changes
[cdsspec-compiler.git] / benchmark / ms-queue / main.c
index d3bc9c238b1d7734281bfa1b641e16bf6cd662e1..f6973a706ced450952d2e7180579ddb0d9c4acc9 100644 (file)
@@ -5,7 +5,7 @@
 #include "my_queue.h"
 #include "model-assert.h"
 
-static int procs = 2;
+static int procs = 3;
 static queue_t *queue;
 static thrd_t *threads;
 static unsigned int *input;
@@ -40,14 +40,36 @@ static void main_task(void *param)
        }
 */
 
-       if (!pid) {
+       if (pid % 3 == 0) {
                input[0] = 17;
                enqueue(queue, input[0]);
+               printf("Enqueue %d.\n", 17);
+               
                succ1 = dequeue(queue, &input[0]);
-       } else {
+               if (succ1)
+                       printf("Thrd 2: Dequeue %d.\n", input[0]);
+               else
+                       printf("Thrd 2: Dequeue NULL.\n");
+               
+       } else if (pid % 3 == 1) {
+               
                input[1] = 37;
                enqueue(queue, input[1]);
+               printf("Enqueue %d.\n", 37);
+               
+               succ1 = dequeue(queue, &input[0]);
+               if (succ1)
+                       printf("Thrd 3: Dequeue %d.\n", input[0]);
+               else
+                       printf("Thrd 3: Dequeue NULL.\n");
+       } else if (pid %3 == 2) {
+               /*
                succ2 = dequeue(queue, &output[1]);
+               if (succ2)
+                       printf("Dequeue %d.\n", input[1]);
+               else
+                       printf("Dequeue NULL.\n");
+                       */
        }
 
 }