main () { thds = omp_get_max_threads (); if (thds == 1) { printf ("should be run this program on multi threads.\n"); exit (0); } omp_set_dynamic (0); clear (); #pragma omp parallel { int id = omp_get_thread_num (); switch (id) { case 0: waittime (1); a = 1; b = 2; c = 3; #pragma omp flush (a,b) #pragma omp flush (c) while (a != 0 || b != 0 || c != 0) { #pragma omp flush (a) #pragma omp flush (b, c) } break; case 1: while (a == 0 || b == 0 || c == 0) { #pragma omp flush (a) #pragma omp flush (b) #pragma omp flush (c) } a = 0; b = 0; c = 0; #pragma omp flush (a,b,c) break; default: break; } } clear (); #pragma omp parallel func_flush (); clear (); if (errors == 0) { printf ("flush 003 : SUCCESS\n"); return 0; } else { printf ("flush 003 : FAILED\n"); return 1; } }
virtual bool flush( ) { ::osiris::PythonState __pystate(getPythonThreadState()); if( ::osiris::PythonOverride func_flush = this->get_override( "flush" ) ) return func_flush( ); else{ __pystate.leave(); return this->::osiris::File::flush( ); } }
main () { thds = omp_get_max_threads (); if (thds == 1) { printf ("should be run this program on multi threads.\n"); exit (0); } omp_set_dynamic (0); clear (); #pragma omp parallel { int id = omp_get_thread_num (); switch (id) { case 0: waittime (1); a = &one; #pragma omp flush while (*a == 1) { #pragma omp flush } break; case 1: while (*a == 0) { #pragma omp flush } a = &zero; #pragma omp flush break; default: break; } } clear (); #pragma omp parallel func_flush (); if (errors == 0) { printf ("flush 014 : SUCCESS\n"); return 0; } else { printf ("flush 014 : FAILED\n"); return 1; } }
main () { thds = omp_get_max_threads (); if (thds == 1) { printf ("should be run this program on multi threads.\n"); exit (0); } omp_set_dynamic (0); clear (); #pragma omp parallel { a = 0; #pragma omp barrier if (omp_get_thread_num () == 0) { waittime (1); #pragma omp critical a = 1; } else { while (a == 0) { #pragma omp critical { } } } } clear (); #pragma omp parallel func_flush (); if (errors == 0) { printf ("flush 005 : SUCCESS\n"); return 0; } else { printf ("flush 005 : FAILED\n"); return 1; } }