Browse Source

Make sure that tasks submitted by the core are really submitted

Samuel Thibault 13 years ago
parent
commit
f3e24358d4
2 changed files with 19 additions and 9 deletions
  1. 8 4
      src/core/dependencies/implicit_data_deps.c
  2. 11 5
      src/datawizard/user_interactions.c

+ 8 - 4
src/core/dependencies/implicit_data_deps.c

@@ -301,8 +301,10 @@ void _starpu_detect_implicit_data_deps(struct starpu_task *task)
 		_STARPU_PTHREAD_MUTEX_LOCK(&handle->sequential_consistency_mutex);
 		new_task = _starpu_detect_implicit_data_deps_with_handle(task, task, handle, mode);
 		_STARPU_PTHREAD_MUTEX_UNLOCK(&handle->sequential_consistency_mutex);
-		if (new_task)
-			starpu_task_submit(new_task);
+		if (new_task) {
+			int ret = starpu_task_submit(new_task);
+			STARPU_ASSERT(!ret);
+		}
 	}
         _STARPU_LOG_OUT();
 }
@@ -481,8 +483,10 @@ int _starpu_data_wait_until_available(starpu_data_handle_t handle, enum starpu_a
 		new_task = _starpu_detect_implicit_data_deps_with_handle(sync_task, sync_task, handle, mode);
 		_STARPU_PTHREAD_MUTEX_UNLOCK(&handle->sequential_consistency_mutex);
 
-		if (new_task)
-			starpu_task_submit(new_task);
+		if (new_task) {
+			int ret = starpu_task_submit(new_task);
+			STARPU_ASSERT(!ret);
+		}
 
 		/* TODO detect if this is superflous */
 		int ret = starpu_task_submit(sync_task);

+ 11 - 5
src/datawizard/user_interactions.c

@@ -159,8 +159,10 @@ int starpu_data_acquire_cb(starpu_data_handle_t handle,
 		new_task = _starpu_detect_implicit_data_deps_with_handle(wrapper->pre_sync_task, wrapper->post_sync_task, handle, mode);
 		_STARPU_PTHREAD_MUTEX_UNLOCK(&handle->sequential_consistency_mutex);
 
-		if (new_task)
-			starpu_task_submit(new_task);
+		if (new_task) {
+			int ret = starpu_task_submit(new_task);
+			STARPU_ASSERT(!ret);
+		}
 
 		/* TODO detect if this is superflous */
 		int ret = starpu_task_submit(wrapper->pre_sync_task);
@@ -217,11 +219,13 @@ int starpu_data_acquire(starpu_data_handle_t handle, enum starpu_access_mode mod
 	    _starpu_handle_needs_conversion_task(handle, 0))
 	{
 		struct starpu_task *task = _starpu_create_conversion_task(handle, 0);
+		int ret;
 		handle->refcnt--;
 		handle->busy_count--;
 		handle->mf_node = 0;
 		task->synchronous = 1;
-		starpu_task_submit(task);
+		ret = starpu_task_submit(task);
+		STARPU_ASSERT(!ret);
 	}
 
 	struct user_interaction_wrapper wrapper =
@@ -255,8 +259,10 @@ int starpu_data_acquire(starpu_data_handle_t handle, enum starpu_access_mode mod
 
 		new_task = _starpu_detect_implicit_data_deps_with_handle(wrapper.pre_sync_task, wrapper.post_sync_task, handle, mode);
 		_STARPU_PTHREAD_MUTEX_UNLOCK(&handle->sequential_consistency_mutex);
-		if (new_task)
-			starpu_task_submit(new_task);
+		if (new_task) {
+			int ret = starpu_task_submit(new_task);
+			STARPU_ASSERT(!ret);
+		}
 
 		/* TODO detect if this is superflous */
 		wrapper.pre_sync_task->synchronous = 1;