Просмотр исходного кода

starpu_shutdown fix (left contexts not deleted caused shutdown to have pbs)

Andra Hugo лет назад: 13
Родитель
Сommit
4be171f0e6
2 измененных файлов с 3 добавлено и 8 удалено
  1. 0 2
      examples/sched_ctx/sched_ctx.c
  2. 3 6
      src/core/sched_ctx.c

+ 0 - 2
examples/sched_ctx/sched_ctx.c

@@ -97,7 +97,6 @@ int main(int argc, char **argv)
 	   in order to allow moving resources from this context to the inheritor one
 	   in order to allow moving resources from this context to the inheritor one
 	   when its corresponding tasks finished executing */
 	   when its corresponding tasks finished executing */
 
 
-#warning TODO: to be fixed
 	starpu_sched_ctx_finished_submit(sched_ctx1);
 	starpu_sched_ctx_finished_submit(sched_ctx1);
 
 
 	for (i = 0; i < ntasks/2; i++)
 	for (i = 0; i < ntasks/2; i++)
@@ -112,7 +111,6 @@ int main(int argc, char **argv)
 		STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 		STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
 	}
 	}
 
 
-#warning TODO: to be fixed
 	starpu_sched_ctx_finished_submit(sched_ctx2);
 	starpu_sched_ctx_finished_submit(sched_ctx2);
 
 
 	/* wait for all tasks at the end*/
 	/* wait for all tasks at the end*/

+ 3 - 6
src/core/sched_ctx.c

@@ -504,12 +504,9 @@ void _starpu_delete_all_sched_ctxs()
 		_STARPU_PTHREAD_MUTEX_LOCK(&changing_ctx_mutex[i]);
 		_STARPU_PTHREAD_MUTEX_LOCK(&changing_ctx_mutex[i]);
 		if(sched_ctx->id != STARPU_NMAX_SCHED_CTXS)
 		if(sched_ctx->id != STARPU_NMAX_SCHED_CTXS)
 		{
 		{
-			if(!_starpu_wait_for_all_tasks_of_sched_ctx(sched_ctx->id) && !_starpu_wait_for_all_tasks_of_sched_ctx(0))
-			{
-				_starpu_sched_ctx_free_scheduling_data(sched_ctx);
-				_starpu_barrier_counter_destroy(&sched_ctx->tasks_barrier);
-				_starpu_delete_sched_ctx(sched_ctx);
-			}
+			_starpu_sched_ctx_free_scheduling_data(sched_ctx);
+			_starpu_barrier_counter_destroy(&sched_ctx->tasks_barrier);
+			_starpu_delete_sched_ctx(sched_ctx);
 		}
 		}
 		_STARPU_PTHREAD_MUTEX_UNLOCK(&changing_ctx_mutex[i]);
 		_STARPU_PTHREAD_MUTEX_UNLOCK(&changing_ctx_mutex[i]);