OpenMP directive turns a statement into a real code block [with proper example]

Tim Prince TimothyPrince@sbcglobal.net
Sat Jun 20 15:36:00 GMT 2009


Tim Prince wrote:
> Peter Cech wrote:
> 
>>   # pragma omp parallel for
>>     for (int i = 0; i < 10; ++i) {
>>   #   pragma omp critical
>>       Class instance = create_and_register_new_instance();
>>
>>       instance.do_something();
>>     }
> But still, turning on OpenMP here creates a new inner block scope, as you
> suggested the first time, so the compiler is right to throw the error.  If
> you mean to keep the original block intact, you will need the additional
> set of {}.
But it seems pointless to make a parallel loop which contains nothing but
a critical section.



More information about the Gcc-help mailing list