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; }
void ta_lock_destroy(talock_t *mutex) { ta_sem_destroy(&(mutex->binary_sem)); }