title: set_num_threads inside parallel not working
body: <p>I'm struggling to set number of threads to 1 inside of a parallel region. I put a barrier so that all threads stop at that point and I can freely set number of threads to 1 (and there will be no threads executing). But wherever I placed omp_set_num_threads(1) it always returned 3. Is it possible to change number of threads during runtime? How can I do that?</p>
  
  <pre><code>#import&lt;iostream&gt;
  #import&lt;omp.h&gt;
  #import&lt;stdio.h&gt;
  
  int main(){
  
  int num_of_threads;
  std::cin&gt;&gt;num_of_threads;
  omp_set_dynamic(0); 
  #pragma omp parallel if(num_of_threads&gt;1) num_threads(3)
  {
      int t_id = omp_get_thread_num();
      int t_total = omp_get_num_threads();
      printf("Current thread id: %d \n Total number_of_threads: %d \n",t_id,t_total);
      #pragma omp barrier
      #pragma omp single
      { 
      omp_set_num_threads(1);
      t_id = omp_get_thread_num();
      t_total = omp_get_num_threads();
      printf("Single section \n Current thread id: %d \n Total number_of_threads: %d \n",t_id,t_total);
      }
  }
  
  
  }
  </code></pre>