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