1*404b540aSrobert /* Trivial test of thread startup. */ 2*404b540aSrobert 3*404b540aSrobert #include <omp.h> 4*404b540aSrobert #include <string.h> 5*404b540aSrobert #include <assert.h> 6*404b540aSrobert #include "libgomp_g.h" 7*404b540aSrobert 8*404b540aSrobert 9*404b540aSrobert static int nthr; 10*404b540aSrobert static int saw[4]; 11*404b540aSrobert function(void * dummy)12*404b540aSrobertstatic void function(void *dummy) 13*404b540aSrobert { 14*404b540aSrobert int iam = omp_get_thread_num (); 15*404b540aSrobert 16*404b540aSrobert if (iam == 0) 17*404b540aSrobert nthr = omp_get_num_threads (); 18*404b540aSrobert 19*404b540aSrobert saw[iam] = 1; 20*404b540aSrobert } 21*404b540aSrobert main()22*404b540aSrobertint main() 23*404b540aSrobert { 24*404b540aSrobert omp_set_dynamic (0); 25*404b540aSrobert 26*404b540aSrobert GOMP_parallel_start (function, NULL, 2); 27*404b540aSrobert function (NULL); 28*404b540aSrobert GOMP_parallel_end (); 29*404b540aSrobert 30*404b540aSrobert assert (nthr == 2); 31*404b540aSrobert assert (saw[0] != 0); 32*404b540aSrobert assert (saw[1] != 0); 33*404b540aSrobert assert (saw[2] == 0); 34*404b540aSrobert 35*404b540aSrobert memset (saw, 0, sizeof (saw)); 36*404b540aSrobert 37*404b540aSrobert GOMP_parallel_start (function, NULL, 3); 38*404b540aSrobert function (NULL); 39*404b540aSrobert GOMP_parallel_end (); 40*404b540aSrobert 41*404b540aSrobert assert (nthr == 3); 42*404b540aSrobert assert (saw[0] != 0); 43*404b540aSrobert assert (saw[1] != 0); 44*404b540aSrobert assert (saw[2] != 0); 45*404b540aSrobert assert (saw[3] == 0); 46*404b540aSrobert 47*404b540aSrobert return 0; 48*404b540aSrobert } 49