#NEWLINE# def visit_ParFor( self , stmt ) : #NEWLINE# #INDENT# bounds = self . tuple_to_var_list ( stmt . bounds ) #NEWLINE# n_vars = len ( bounds ) #NEWLINE# loop_vars = self . loop_vars ( n_vars ) #NEWLINE# self . enter_parfor ( ) #NEWLINE# ( body , private_vars ) = self . build_loop_body ( stmt . fn , loop_vars ) #NEWLINE# loops = self . build_loops ( loop_vars , bounds , body ) #NEWLINE# self . exit_parfor ( ) #NEWLINE# if ( self . depth == 0 ) : #NEWLINE# #INDENT# release_gil = '\nPy_BEGIN_ALLOW_THREADS\n' #NEWLINE# acquire_gil = '\nPy_END_ALLOW_THREADS\n' #NEWLINE# omp = self . omp_pragma ( len ( loop_vars ) , private_vars ) #NEWLINE# return ( ( ( release_gil + omp ) + loops ) + acquire_gil ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return loops