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
 	   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]);