Subversion Repositories HelenOS-historic

Rev

Rev 534 | Rev 1062 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 534 Rev 627
Line 83... Line 83...
83
    rwlock_initialize(&rwlock);
83
    rwlock_initialize(&rwlock);
84
   
84
   
85
    for (i=1; i<=3; i++) {
85
    for (i=1; i<=3; i++) {
86
        thread_t *thrd;
86
        thread_t *thrd;
87
 
87
 
88
        items_read = 0;
88
        atomic_set(&items_read, 0);
89
        items_written = 0;
89
        atomic_set(&items_written, 0);
90
 
90
 
91
        readers = i*READERS;
91
        readers = i*READERS;
92
        writers = (4-i)*WRITERS;
92
        writers = (4-i)*WRITERS;
93
 
93
 
94
        printf("Creating %d readers and %d writers...", readers, writers);
94
        printf("Creating %d readers and %d writers...", readers, writers);
Line 113... Line 113...
113
        printf("ok\n");
113
        printf("ok\n");
114
 
114
 
115
        thread_sleep(1);
115
        thread_sleep(1);
116
        waitq_wakeup(&can_start, WAKEUP_ALL);
116
        waitq_wakeup(&can_start, WAKEUP_ALL);
117
   
117
   
118
        while (items_read != readers || items_written != writers) {
118
        while (items_read.count != readers || items_written.count != writers) {
119
            printf("%d readers remaining, %d writers remaining, readers_in=%d\n", readers - items_read, writers - items_written, rwlock.readers_in);
119
            printf("%d readers remaining, %d writers remaining, readers_in=%d\n", readers - items_read.count, writers - items_written.count, rwlock.readers_in);
120
            thread_usleep(100000);
120
            thread_usleep(100000);
121
        }
121
        }
122
    }
122
    }
123
    printf("Test passed.\n");
123
    printf("Test passed.\n");
124
}
124
}