Procházet zdrojové kódy

Drop callback parameter from starpu_data_dup_ro

We will not need it, providing it properly is non-trivial (it's supposed to
tell when the copy is complete), and it's not a good thing for people to
use, they should rather use starpu_acquire_cb(R) on the data.
Samuel Thibault před 4 roky
rodič
revize
0d54bf71e9

+ 1 - 1
include/starpu_helper.h

@@ -199,7 +199,7 @@ int starpu_data_cpy(starpu_data_handle_t dst_handle, starpu_data_handle_t src_ha
    the handle has been copied, and it is given the pointer \p
    callback_arg as argument.
 */
-int starpu_data_dup_ro(starpu_data_handle_t *dst_handle, starpu_data_handle_t src_handle, int asynchronous, void (*callback_func)(void*), void *callback_arg);
+int starpu_data_dup_ro(starpu_data_handle_t *dst_handle, starpu_data_handle_t src_handle, int asynchronous);
 
 /**
    Call hwloc-ps to display binding of each processus and thread running on

+ 2 - 7
src/util/starpu_data_cpy.c

@@ -177,8 +177,7 @@ int starpu_data_cpy(starpu_data_handle_t dst_handle, starpu_data_handle_t src_ha
 }
 
 /* TODO: implement copy on write, and introduce starpu_data_dup as well */
-int starpu_data_dup_ro(starpu_data_handle_t *dst_handle, starpu_data_handle_t src_handle,
-			int asynchronous, void (*callback_func)(void*), void *callback_arg)
+int starpu_data_dup_ro(starpu_data_handle_t *dst_handle, starpu_data_handle_t src_handle, int asynchronous)
 {
 	_starpu_spin_lock(&src_handle->header_lock);
 	if (src_handle->readonly_dup) {
@@ -188,22 +187,18 @@ int starpu_data_dup_ro(starpu_data_handle_t *dst_handle, starpu_data_handle_t sr
 		_starpu_spin_lock(&(*dst_handle)->header_lock);
 		(*dst_handle)->aliases++;
 		_starpu_spin_unlock(&(*dst_handle)->header_lock);
-		if (callback_func)
-			callback_func(callback_arg);
 		return 0;
 	}
 	if (src_handle->readonly) {
 		src_handle->aliases++;
 		_starpu_spin_unlock(&src_handle->header_lock);
 		*dst_handle = src_handle;
-		if (callback_func)
-			callback_func(callback_arg);
 		return 0;
 	}
 	_starpu_spin_unlock(&src_handle->header_lock);
 
 	starpu_data_register_same(dst_handle, src_handle);
-	_starpu_data_cpy(*dst_handle, src_handle, asynchronous, callback_func, callback_arg, 0, NULL);
+	_starpu_data_cpy(*dst_handle, src_handle, asynchronous, NULL, NULL, 0, NULL);
 	(*dst_handle)->readonly = 1;
 
 	_starpu_spin_lock(&src_handle->header_lock);

+ 5 - 5
tests/helper/starpu_data_dup_ro.c

@@ -37,23 +37,23 @@ int main(int argc, char **argv)
 	starpu_variable_data_register(&var1_handle, STARPU_MAIN_RAM, (uintptr_t)&var1, sizeof(var1));
 
 	/* Make a duplicate of the original data */
-	ret = starpu_data_dup_ro(&var2_handle, var1_handle, 1, NULL, NULL);
+	ret = starpu_data_dup_ro(&var2_handle, var1_handle, 1);
 	STARPU_CHECK_RETURN_VALUE(ret, "starpu_data_dup_ro");
 
 	/* Free it */
 	starpu_data_unregister(var2_handle);
 
 	/* Make another duplicate of the original data */
-	ret = starpu_data_dup_ro(&var2_handle, var1_handle, 1, NULL, NULL);
+	ret = starpu_data_dup_ro(&var2_handle, var1_handle, 1);
 	STARPU_CHECK_RETURN_VALUE(ret, "starpu_data_dup_ro");
 
 	/* Make a second duplicate of the original data */
-	ret = starpu_data_dup_ro(&var3_handle, var1_handle, 1, NULL, NULL);
+	ret = starpu_data_dup_ro(&var3_handle, var1_handle, 1);
 	STARPU_CHECK_RETURN_VALUE(ret, "starpu_data_dup_ro");
 	STARPU_ASSERT(var3_handle == var2_handle);
 
 	/* Make a duplicate of a duplicate */
-	ret = starpu_data_dup_ro(&var4_handle, var2_handle, 1, NULL, NULL);
+	ret = starpu_data_dup_ro(&var4_handle, var2_handle, 1);
 	STARPU_CHECK_RETURN_VALUE(ret, "starpu_data_dup_ro");
 	STARPU_ASSERT(var4_handle == var2_handle);
 
@@ -69,7 +69,7 @@ int main(int argc, char **argv)
 	}
 
 	/* Make a duplicate of the new value */
-	ret = starpu_data_dup_ro(&var5_handle, var1_handle, 1, NULL, NULL);
+	ret = starpu_data_dup_ro(&var5_handle, var1_handle, 1);
 	STARPU_CHECK_RETURN_VALUE(ret, "starpu_data_dup_ro");
 
 	starpu_data_acquire(var2_handle, STARPU_R);