| /* Trivial test of thread startup. */ |
| |
| #include <omp.h> |
| #include <string.h> |
| #include <assert.h> |
| #include "libgomp_g.h" |
| |
| |
| static int nthr; |
| static int saw[4]; |
| |
| static void function(void *dummy) |
| { |
| int iam = omp_get_thread_num (); |
| |
| if (iam == 0) |
| nthr = omp_get_num_threads (); |
| |
| saw[iam] = 1; |
| } |
| |
| int main() |
| { |
| omp_set_dynamic (0); |
| |
| GOMP_parallel_start (function, NULL, 2); |
| function (NULL); |
| GOMP_parallel_end (); |
| |
| assert (nthr == 2); |
| assert (saw[0] != 0); |
| assert (saw[1] != 0); |
| assert (saw[2] == 0); |
| |
| memset (saw, 0, sizeof (saw)); |
| |
| GOMP_parallel_start (function, NULL, 3); |
| function (NULL); |
| GOMP_parallel_end (); |
| |
| assert (nthr == 3); |
| assert (saw[0] != 0); |
| assert (saw[1] != 0); |
| assert (saw[2] != 0); |
| assert (saw[3] == 0); |
| |
| return 0; |
| } |