Mercurial > hg > CbC > CbC_gcc
view libmudflap/testsuite/libmudflap.cth/pass39-frag.c @ 48:9907f3135723
update CbC on GCC from 4.4.2 to 4.4.3.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 07 Feb 2010 17:48:31 +0900 |
parents | a06113de4d67 |
children |
line wrap: on
line source
#include <stdlib.h> #include <stdio.h> #include <pthread.h> #include <sched.h> #include <assert.h> static void * func (void *p) { int *counter = (int *) p; unsigned i; enum { numarrays = 100, numels = 17 }; char *arrays [numarrays]; for (i=0; i<numarrays; i++) { (*counter) ++; unsigned x = i % numels; arrays[i] = calloc (numels, sizeof(arrays[i][0])); assert (arrays[i] != NULL); arrays[i][x] = i; free (arrays[i]); sched_yield (); /* sleep (1); */ } return (NULL); } int main () { int rc; unsigned i; enum foo { NT=10 }; pthread_t threads[NT]; int counts[NT]; for (i=0; i<NT; i++) { counts[i] = 0; rc = pthread_create (& threads[i], NULL, func, (void *) & counts[i]); if (rc) abort(); } for (i=0; i<NT; i++) { rc = pthread_join (threads[i], NULL); if (rc) abort(); printf ("%d%s", counts[i], (i==NT-1) ? "\n" : " "); } return 0; } /* { dg-output "100 100 100 100 100 100 100 100 100 100" } */ /* { dg-repetitions 20 } */ /* { dg-timeout 10 } */