Sfoglia il codice sorgente

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

Andra Hugo 12 anni fa
parent
commit
4be171f0e6
2 ha cambiato i file con 3 aggiunte e 8 eliminazioni
  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
 	   when its corresponding tasks finished executing */
 
-#warning TODO: to be fixed
 	starpu_sched_ctx_finished_submit(sched_ctx1);
 
 	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");
 	}
 
-#warning TODO: to be fixed
 	starpu_sched_ctx_finished_submit(sched_ctx2);
 
 	/* 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]);
 		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]);