for (i = 0; i < num_threads; i++)
if (curr.priv == threads[i].priv)
return i;
- MODEL_ASSERT(0);
+ //MODEL_ASSERT(0);
return -1;
}
+bool succ1, succ2;
+
static void main_task(void *param)
{
+
unsigned int val;
int pid = *((int *)param);
+/*
+ if (!pid) {
+ input[0] = 17;
+ succ1 = dequeue(queue, &input[0]);
+ } else {
+ input[1] = 37;
+ enqueue(queue, input[1]);
+ }
+*/
if (!pid) {
input[0] = 17;
enqueue(queue, input[0]);
- output[0] = dequeue(queue);
+ printf("Enqueue %d.\n", 17);
+ succ1 = dequeue(queue, &input[0]);
+ if (succ1)
+ printf("Dequeue %d.\n", input[0]);
+ else
+ printf("Dequeue NULL.\n");
} else {
input[1] = 37;
enqueue(queue, input[1]);
- output[1] = dequeue(queue);
+ printf("Enqueue %d.\n", 37);
+ succ2 = dequeue(queue, &output[1]);
+ if (succ2)
+ printf("Dequeue %d.\n", input[1]);
+ else
+ printf("Dequeue NULL.\n");
}
+
}
int user_main(int argc, char **argv)
unsigned int in_sum = 0, out_sum = 0;
queue = calloc(1, sizeof(*queue));
- MODEL_ASSERT(queue);
+ //MODEL_ASSERT(queue);
num_threads = procs;
threads = malloc(num_threads * sizeof(thrd_t));
}
for (i = 0; i < num_threads; i++)
thrd_join(threads[i]);
-
+/*
for (i = 0; i < num_threads; i++) {
in_sum += input[i];
out_sum += output[i];
for (i = 0; i < num_threads; i++)
printf("output[%d] = %u\n", i, output[i]);
//MODEL_ASSERT(in_sum == out_sum);
+ */
free(param);
free(threads);