Browse Source

Fix build with blocking drivers

Samuel Thibault 4 years ago
parent
commit
207dd74dc9
2 changed files with 13 additions and 2 deletions
  1. 12 1
      src/datawizard/data_request.c
  2. 1 1
      src/datawizard/data_request.h

+ 12 - 1
src/datawizard/data_request.c

@@ -853,7 +853,7 @@ int _starpu_handle_all_pending_node_data_requests(unsigned handling_node, unsign
 
 /* Note: the returned value will be outdated since the locks are not taken at
  * entry/exit */
-int _starpu_check_that_no_data_request_exists(unsigned node, unsigned peer_node, enum _starpu_data_request_inout inout)
+static int __starpu_check_that_no_data_request_exists(unsigned node, unsigned peer_node, enum _starpu_data_request_inout inout)
 {
 	int no_request;
 	int no_pending;
@@ -870,6 +870,17 @@ int _starpu_check_that_no_data_request_exists(unsigned node, unsigned peer_node,
 	return no_request && no_pending;
 }
 
+int _starpu_check_that_no_data_request_exists(unsigned node)
+{
+	unsigned peer_node, nnodes = starpu_memory_nodes_get_count();
+
+	for (peer_node = 0; peer_node < nnodes; peer_node++)
+		if (!__starpu_check_that_no_data_request_exists(node, peer_node, _STARPU_DATA_REQUEST_IN)
+		 || !__starpu_check_that_no_data_request_exists(node, peer_node, _STARPU_DATA_REQUEST_OUT))
+		 return 0;
+	 return 1;
+}
+
 /* Note: the returned value will be outdated since the locks are not taken at
  * entry/exit */
 int _starpu_check_that_no_data_request_is_pending(unsigned node, unsigned peer_node, enum _starpu_data_request_inout inout)

+ 1 - 1
src/datawizard/data_request.h

@@ -148,7 +148,7 @@ int _starpu_handle_node_idle_requests(unsigned handling_node, unsigned peer_node
 int _starpu_handle_pending_node_data_requests(unsigned handling_node, unsigned peer_node, enum _starpu_data_request_inout inout);
 int _starpu_handle_all_pending_node_data_requests(unsigned handling_node, unsigned peer_node, enum _starpu_data_request_inout inout);
 
-int _starpu_check_that_no_data_request_exists(unsigned handling_node, unsigned peer_node, enum _starpu_data_request_inout inout);
+int _starpu_check_that_no_data_request_exists(unsigned handling_node);
 int _starpu_check_that_no_data_request_is_pending(unsigned handling_node, unsigned peer_node, enum _starpu_data_request_inout inout);
 
 struct _starpu_data_request *_starpu_create_data_request(starpu_data_handle_t handle,