X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker-benchmarks.git;a=blobdiff_plain;f=ms-queue%2Fmain.c;h=fefb3861834f0f237aa6ad6f3e7c3b9d903d8d8c;hp=015fbd4c7737175294b9952b697558dca7bf66af;hb=bead5206c1935e3b499300c7e8b5b41a259a04c6;hpb=7df8191c93d3664a3b1ea2dfcd0e88de2cfcc7c9;ds=sidebyside diff --git a/ms-queue/main.c b/ms-queue/main.c index 015fbd4..fefb386 100644 --- a/ms-queue/main.c +++ b/ms-queue/main.c @@ -1,55 +1,46 @@ -#include "main.h" #include +#include +#include +#include -#define NUM_PROCESSORS 12 +#include "my_queue.h" -struct tms tim; -struct tms tim1; - -int shmid; - -unsigned pid; -char* name = ""; -unsigned procs = 1; -unsigned multi = 1; -unsigned iterations = 1; -unsigned initial_nodes = 0; -unsigned repetitions = 1; -unsigned work = 0; +static int procs = 2; +static int iterations = 1; private_t private; -shared_mem_t *smp; +static queue_t *queue; -void time_test() +static void parse_args(int argc, char **argv) { - unsigned i,j; - struct tms time_val; - clock_t t1, t2; - unsigned val; + extern char *optarg; + int c; - if(pid==0) { - init_queue(); - } - init_memory(); - init_private(); - for(i=0;i>1))/(procs*multi); + iterations = (iterations + (procs >> 1)) / procs; - smp = (shared_mem_t *)calloc(1, sizeof(shared_mem_t)); - assert(smp); + queue = calloc(1, sizeof(*queue)); + assert(queue); - num_threads = procs * multi; + num_threads = procs; t = malloc(num_threads * sizeof(thrd_t)); + param = malloc(num_threads * sizeof(*param)); - for (i = 0; i < num_threads; i++) - thrd_create(&t[i], main_task, NULL); + init_queue(queue); + for (i = 0; i < num_threads; i++) { + param[i] = i; + thrd_create(&t[i], main_task, ¶m[i]); + } for (i = 0; i < num_threads; i++) thrd_join(t[i]); + free(param); free(t); - free(smp); + free(queue); return 0; }