/* Trivial test of barrier. */ #include #include #include #include #include "libgomp_g.h" struct timeval stamps[3][3]; static void function(void *dummy) { int iam = omp_get_thread_num (); gettimeofday (&stamps[iam][0], NULL); if (iam == 0) usleep (10); GOMP_barrier (); if (iam == 0) { gettimeofday (&stamps[0][1], NULL); usleep (10); } GOMP_barrier (); gettimeofday (&stamps[iam][2], NULL); } int main() { omp_set_dynamic (0); GOMP_parallel_start (function, NULL, 3); function (NULL); GOMP_parallel_end (); assert (!timercmp (&stamps[0][0], &stamps[0][1], >)); assert (!timercmp (&stamps[1][0], &stamps[0][1], >)); assert (!timercmp (&stamps[2][0], &stamps[0][1], >)); assert (!timercmp (&stamps[0][1], &stamps[0][2], >)); assert (!timercmp (&stamps[0][1], &stamps[1][2], >)); assert (!timercmp (&stamps[0][1], &stamps[2][2], >)); return 0; }