- if (!pid) {
- input[0] = 17;
- enqueue(queue, input[0]);
- succ1 = dequeue(queue, &output[0]);
- //printf("Dequeue: %d\n", output[0]);
- } else {
- input[1] = 37;
- enqueue(queue, input[1]);
- succ2 = dequeue(queue, &output[1]);
+ if (pid % 4 == 0) {
+ atomic_store_explicit(&x[0], 1, memory_order_relaxed);
+ enqueue(queue, 0, false);
+ } else if (pid % 4 == 1) {
+ atomic_store_explicit(&x[1], 1, memory_order_relaxed);
+ enqueue(queue, 1, false);
+ } else if (pid % 4 == 2) {
+ succ1 = dequeue(queue, &idx1, &reclaimNode);
+ if (succ1) {
+ atomic_load_explicit(&x[idx1], memory_order_relaxed);
+ }
+ } else if (pid % 4 == 3) {
+ /*
+ succ2 = dequeue(queue, &idx2, &reclaimNode);
+ if (succ2) {
+ atomic_load_explicit(&x[idx2], memory_order_relaxed);
+ }
+ */