66,7 → 66,7 |
rwlock_read_unlock(&rwlock); |
} |
|
char * test_rwlock5(bool quiet) |
char *test_rwlock5(void) |
{ |
int i, j, k; |
long readers, writers; |
83,7 → 83,7 |
readers = i * READERS; |
writers = (4 - i) * WRITERS; |
|
printf("Creating %ld readers and %ld writers...", readers, writers); |
TPRINTF("Creating %ld readers and %ld writers...", readers, writers); |
|
for (j = 0; j < (READERS + WRITERS) / 2; j++) { |
for (k = 0; k < i; k++) { |
91,7 → 91,7 |
if (thrd) |
thread_ready(thrd); |
else |
printf("Could not create reader %d\n", k); |
TPRINTF("Could not create reader %d\n", k); |
} |
for (k = 0; k < (4 - i); k++) { |
thrd = thread_create(writer, NULL, TASK, 0, "writer", false); |
98,17 → 98,17 |
if (thrd) |
thread_ready(thrd); |
else |
printf("Could not create writer %d\n", k); |
TPRINTF("Could not create writer %d\n", k); |
} |
} |
|
printf("ok\n"); |
TPRINTF("ok\n"); |
|
thread_sleep(1); |
waitq_wakeup(&can_start, WAKEUP_ALL); |
|
while ((items_read.count != readers) || (items_written.count != writers)) { |
printf("%d readers remaining, %d writers remaining, readers_in=%d\n", readers - items_read.count, writers - items_written.count, rwlock.readers_in); |
TPRINTF("%d readers remaining, %d writers remaining, readers_in=%d\n", readers - items_read.count, writers - items_written.count, rwlock.readers_in); |
thread_usleep(100000); |
} |
} |