int main(int argc, char **argv) { printf("Tester for stage 2. Uses semaphores and mutex locks.\n"); srandom(time(NULL)); ta_libinit(); int i = 0; int nrw = 5; data = (int *)malloc(sizeof(int) * DATALEN); assert(data); memset(data, 0, sizeof(int)*DATALEN); datalen = DATALEN; ta_sem_init(&readersem, 0); ta_sem_init(&writersem, DATALEN); ta_lock_init(&rmutex); ta_lock_init(&wmutex); ta_create(killerthr, (void *)i); for (i = 0; i < nrw; i++) { ta_create(reader, (void *)i); ta_create(writer, (void *)i); } int rv = ta_waitall(); assert(rv==0); ta_sem_destroy(&readersem); ta_sem_destroy(&writersem); ta_lock_destroy(&rmutex); ta_lock_destroy(&wmutex); free(data); return 0; }
int main(int argc, char **argv) { ta_libinit(); shared_data_t shared_data; int i; srandom(time(NULL)); memset(&shared_data, 0, sizeof(shared_data_t)); ta_sem_init(&shared_data.atTableSem, 1); for (i = 0 ; i < NPHILOSOPHERS; i++) { ta_sem_init(&shared_data.chopstickSem[i], 1); } ta_create(killerthr, (void*)&shared_data); for (i = 0; i < NPHILOSOPHERS; i++) { ta_create(philosophize, (void *)&shared_data); } int rv = ta_waitall(); assert(rv < 0); return 0; }
int main(int argc, char **argv) { ta_libinit(); int i; shared_data_t shared_data; srandom(time(NULL)); memset(&shared_data, 0, sizeof(shared_data_t)); for (i = 0 ; i < BUFFERSIZE; i++) { shared_data.buffer[i] = 0xFEEDFEED; } ta_sem_init(&shared_data.emptyBuffer, BUFFERSIZE); ta_sem_init(&shared_data.fullBuffer, 0); ta_create(killerthr, (void *)&shared_data); for ( i = 0; i < NPRODUCER; i++) { ta_create(producer, (void *)&shared_data); } for ( i = 0; i < NCONSUMER; i++) { ta_create(consumer, (void *)&shared_data); } int rv = ta_waitall(); assert(rv == 0); return 0; }
int main(int argc, char **argv) { printf("Tester for stage 1. Uses all four stage 1 library functions.\n"); ta_libinit(); int i = 0; for (i = 0; i < 2; i++) { ta_create(thread1, (void *)&i); ta_create(thread2, (void *)&i); } int rv = ta_waitall(); if (rv) { fprintf(stderr, "%d threads were not ready to run when ta_waitall() was called\n", -rv); } return 0; }
int main(int argc, char **argv) { ta_libinit(); ta_lock_init(&mutex); ta_cond_init(&condv); ta_create(thread1, NULL); ta_create(thread2, NULL); int rv = ta_waitall(); assert(rv == 0); assert(value == 42); ta_lock_destroy(&mutex); ta_cond_destroy(&condv); return 0; }