|
@@ -204,20 +204,25 @@ struct _starpu_data_request *_starpu_create_data_request(starpu_data_handle_t ha
|
|
STARPU_ASSERT(!handle->write_invalidation_req);
|
|
STARPU_ASSERT(!handle->write_invalidation_req);
|
|
handle->write_invalidation_req = r;
|
|
handle->write_invalidation_req = r;
|
|
}
|
|
}
|
|
- else if (mode & STARPU_R)
|
|
|
|
- {
|
|
|
|
- unsigned src_node = src_replicate->memory_node;
|
|
|
|
- STARPU_ASSERT(!dst_replicate->request[src_node]);
|
|
|
|
- dst_replicate->request[src_node] = r;
|
|
|
|
- /* Take a reference on the source for the request to be able to read it */
|
|
|
|
- src_replicate->refcnt++;
|
|
|
|
- handle->busy_count++;
|
|
|
|
- }
|
|
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- unsigned dst_node = dst_replicate->memory_node;
|
|
|
|
- STARPU_ASSERT(!dst_replicate->request[dst_node]);
|
|
|
|
- dst_replicate->request[dst_node] = r;
|
|
|
|
|
|
+ unsigned node;
|
|
|
|
+
|
|
|
|
+ if (mode & STARPU_R)
|
|
|
|
+ node = src_replicate->memory_node;
|
|
|
|
+ else
|
|
|
|
+ node = dst_replicate->memory_node;
|
|
|
|
+
|
|
|
|
+ STARPU_ASSERT(!dst_replicate->request[node]);
|
|
|
|
+ dst_replicate->request[node] = r;
|
|
|
|
+
|
|
|
|
+ if (mode & STARPU_R)
|
|
|
|
+ {
|
|
|
|
+ /* Take a reference on the source for the request to be
|
|
|
|
+ * able to read it */
|
|
|
|
+ src_replicate->refcnt++;
|
|
|
|
+ handle->busy_count++;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
r->refcnt = 1;
|
|
r->refcnt = 1;
|