瀏覽代碼

simplify while loops

Samuel Thibault 8 年之前
父節點
當前提交
74dd073ec1
共有 2 個文件被更改,包括 18 次插入20 次删除
  1. 9 10
      src/sched_policies/component_fifo.c
  2. 9 10
      src/sched_policies/component_prio.c

+ 9 - 10
src/sched_policies/component_fifo.c

@@ -206,18 +206,17 @@ static int fifo_can_push(struct starpu_sched_component * component)
 
 	STARPU_ASSERT(component->nchildren == 1);
 	struct starpu_sched_component * child = component->children[0];
+	struct starpu_task * task = NULL;
 
-	struct starpu_task * task = starpu_sched_component_pull_task(component,NULL);
-	if(task)
-		ret = starpu_sched_component_push_task(NULL,child,task);
-	while(task && !ret)
+	while (1)
 	{
-		if(!res)
-			res = 1;
-
-		task = starpu_sched_component_pull_task(component,NULL);
-		if(task)
-			ret = starpu_sched_component_push_task(NULL,child,task);
+		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)
 		fifo_push_local_task(component,task,1);

+ 9 - 10
src/sched_policies/component_prio.c

@@ -227,21 +227,20 @@ static int prio_can_push(struct starpu_sched_component * component)
 
 	STARPU_ASSERT(component->nchildren == 1);
 	struct starpu_sched_component * child = component->children[0];
+	struct starpu_task * task;
 
-	struct starpu_task * task = starpu_sched_component_pull_task(component, component);
-	if(task)
-		ret = starpu_sched_component_push_task(component,child,task);	
-	while(task && !ret) 
+	while (1)
 	{
-		if(!res)
-			res = 1;
-
 		task = starpu_sched_component_pull_task(component,component);
-		if(task)
-			ret = starpu_sched_component_push_task(component,child,task);	
+		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); 
+		prio_push_local_task(component,task,1);
 
 	return res;
 }