/* Threads starts here */ void *process_thread(void *param) { /* Process number */ int i = (int) (long) param, j; printf("PROC %d\n", i); /* Allocate request vector */ int *request = malloc(n*sizeof(int)); int q; for(q = 0; q < n; q++){ request[q] = 0; } int legal = 0; while (1) { /* Generate request */ generate_request(i, request); while (!resource_request(i, request)) { printf("%s\n", "Waiting"); /* Wait */ Sleep(1000); } /* Generate release */ generate_release(i, request); /* Release resources */ resource_release(i, request); /* Wait */ Sleep(1000); } free(request); }
/* Threads starts here */ void *process_thread(void *param) { /* Process number */ int i = (int) (long) param, j; /* Allocate request vector */ int *request = malloc(n*sizeof(int)); while (1) { /* Generate request */ generate_request(i, request); while (!resource_request(i, request)) { /* Wait */ Sleep(100); } /* Generate release */ generate_release(i, request); /* Release resources */ resource_release(i, request); /* Wait */ Sleep(1000); } free(request); }