| 
					
				 | 
			
			
				@@ -221,25 +221,13 @@ static struct starpu_task * prio_pull_task(struct starpu_sched_component * compo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static int prio_can_push(struct starpu_sched_component * component) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	STARPU_ASSERT(component && starpu_sched_component_is_prio(component)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	int ret = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	int res = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	STARPU_ASSERT(component->nchildren == 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	struct starpu_sched_component * child = component->children[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	struct starpu_task * task; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	while (1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		task = starpu_sched_component_pull_task(component,component); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (!task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		ret = starpu_sched_component_push_task(component,child,task);	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (ret) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		res = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if(task && ret) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		prio_push_local_task(component,task,1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	task = starpu_sched_component_pump_downstream(component, &res);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if(task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		STARPU_ASSERT(!prio_push_local_task(component,task,1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return res; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |