43 lines
		
	
	
		
			537 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			537 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include "compat.h"
 | 
						|
#include <stdio.h>
 | 
						|
 | 
						|
int main(void)
 | 
						|
{
 | 
						|
	#pragma omp parallel
 | 
						|
	#pragma omp single
 | 
						|
	{
 | 
						|
		#pragma omp task label("A")
 | 
						|
		{
 | 
						|
			sleep_us(5000);
 | 
						|
			printf("A\n");
 | 
						|
		}
 | 
						|
 | 
						|
		#pragma omp task label("B")
 | 
						|
		{
 | 
						|
			#pragma omp task label("B1")
 | 
						|
			{
 | 
						|
				sleep_us(2000);
 | 
						|
				printf("B1\n");
 | 
						|
			}
 | 
						|
 | 
						|
			/* Shouldn't wait for task A */
 | 
						|
			#pragma omp taskwait
 | 
						|
 | 
						|
			#pragma omp task
 | 
						|
			{
 | 
						|
				sleep_us(1000);
 | 
						|
				printf("B2\n");
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		#pragma omp task label("C")
 | 
						|
		{
 | 
						|
			printf("C\n");
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	/* Expected output C B1 B2 A */
 | 
						|
 | 
						|
	return 0;
 | 
						|
}
 |