Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}