From: Bart Van Assche Date: Sat, 30 Jul 2011 09:28:13 +0000 (+0000) Subject: drd/tests/pth_barrier_thr_cr: Add more error checking. X-Git-Tag: svn/VALGRIND_3_7_0~288 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a2a69e65888cde62081fed34c637b119492fcb0;p=thirdparty%2Fvalgrind.git drd/tests/pth_barrier_thr_cr: Add more error checking. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11949 --- diff --git a/drd/tests/pth_barrier_thr_cr.c b/drd/tests/pth_barrier_thr_cr.c index a6d474381b..57502b74a8 100644 --- a/drd/tests/pth_barrier_thr_cr.c +++ b/drd/tests/pth_barrier_thr_cr.c @@ -14,34 +14,43 @@ #include #include -static pthread_barrier_t s_barrier; +static pthread_barrier_t* s_barrier; static void* thread(void* arg) { write(STDOUT_FILENO, ".", 1); - pthread_barrier_wait(&s_barrier); + pthread_barrier_wait(s_barrier); return NULL; } int main(int argc, char** argv) { pthread_t *tid; - int barriers = argc > 2 ? atoi(argv[1]) : 20; + int barriers = argc > 1 ? atoi(argv[1]) : 20; int barrier_participants = 2; int thread_count = barriers * barrier_participants; - int i; + int res, i; - pthread_barrier_init(&s_barrier, NULL, barrier_participants); + s_barrier = malloc(sizeof(*s_barrier)); + res = pthread_barrier_init(s_barrier, NULL, barrier_participants); + assert(res == 0); tid = malloc(thread_count * sizeof(*tid)); assert(tid); - for (i = 0; i < thread_count; i++) - pthread_create(&tid[i], NULL, thread, NULL); - for (i = 0; i < thread_count; i++) - pthread_join(tid[i], NULL); + for (i = 0; i < thread_count; i++) { + res = pthread_create(&tid[i], NULL, thread, NULL); + assert(res == 0); + } + for (i = 0; i < thread_count; i++) { + res = pthread_join(tid[i], NULL); + assert(res == 0); + } free(tid); - pthread_barrier_destroy(&s_barrier); + res = pthread_barrier_destroy(s_barrier); + assert(res == 0); + free(s_barrier); + s_barrier = NULL; write(STDOUT_FILENO, "\n", 1); fprintf(stderr, "Done.\n");