summaryrefslogtreecommitdiffstats
path: root/src/H5VLiod_client.c
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2013-08-23 19:24:52 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2013-08-23 19:24:52 (GMT)
commit0f9e1cd95bcc22374e1e444267cb72b1cc8ee299 (patch)
treef905baef41d3489d32bff72dfc535ec36a9f4f2a /src/H5VLiod_client.c
parent8c5fc92408736d6df89c1d47f8df85d9c5bf54b7 (diff)
downloadhdf5-0f9e1cd95bcc22374e1e444267cb72b1cc8ee299.zip
hdf5-0f9e1cd95bcc22374e1e444267cb72b1cc8ee299.tar.gz
hdf5-0f9e1cd95bcc22374e1e444267cb72b1cc8ee299.tar.bz2
[svn-r24065] - refactor code for client FF plugin to help usage of global linked list for AXE tasks.
- Add a global linked list to hold all AXE tasks created (across multiple containers) - Add additional payload to all operations forwarded to the server to include a start and count of AXE IDs to finish. ( Finishing the AXE tasks is not done yet )
Diffstat (limited to 'src/H5VLiod_client.c')
-rw-r--r--src/H5VLiod_client.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/H5VLiod_client.c b/src/H5VLiod_client.c
index 4c7a3d4..2ecfe24 100644
--- a/src/H5VLiod_client.c
+++ b/src/H5VLiod_client.c
@@ -275,6 +275,7 @@ H5VL_iod_request_wait_all(H5VL_iod_file_t *file)
fprintf(stderr, "Wait timeout reached\n");
cur_req->status = H5AO_FAILED;
cur_req->state = H5VL_IOD_COMPLETED;
+ //H5VL_iod_request_remove_from_axe_list(cur_req);
H5VL_iod_request_delete(file, cur_req);
goto done;
}
@@ -284,6 +285,7 @@ H5VL_iod_request_wait_all(H5VL_iod_file_t *file)
}
}
+ //H5VL_iod_request_remove_from_axe_list(cur_req);
if(H5VL_iod_request_complete(file, cur_req) < 0)
fprintf(stderr, "Operation Failed!\n");
@@ -330,6 +332,7 @@ H5VL_iod_request_wait_some(H5VL_iod_file_t *file, const void *object)
fprintf(stderr, "failed to wait on request\n");
cur_req->status = H5AO_FAILED;
cur_req->state = H5VL_IOD_COMPLETED;
+ //H5VL_iod_request_remove_from_axe_list(cur_req);
H5VL_iod_request_delete(file, cur_req);
}
else {
@@ -337,6 +340,7 @@ H5VL_iod_request_wait_some(H5VL_iod_file_t *file, const void *object)
fprintf(stderr, "Wait timeout reached\n");
cur_req->status = H5AO_FAILED;
cur_req->state = H5VL_IOD_COMPLETED;
+ //H5VL_iod_request_remove_from_axe_list(cur_req);
H5VL_iod_request_delete(file, cur_req);
}
else {
@@ -344,6 +348,7 @@ H5VL_iod_request_wait_some(H5VL_iod_file_t *file, const void *object)
cur_req->state = H5VL_IOD_COMPLETED;
if(H5VL_iod_request_complete(file, cur_req) < 0)
fprintf(stderr, "Operation Failed!\n");
+ //H5VL_iod_request_remove_from_axe_list(cur_req);
}
}
}
@@ -552,7 +557,7 @@ H5VL_iod_request_complete(H5VL_iod_file_t *file, H5VL_iod_request_t *req)
input.space_id = info->file_space_id;
input.mem_type_id = info->mem_type_id;
input.dset_type_id = dset->remote_dset.type_id;
- input.axe_id = info->axe_id;
+ input.axe_info.axe_id = info->axe_id;
input.parent_axe_id = 0;
/* forward call to IONs */
@@ -1424,6 +1429,7 @@ H5VL_iod_get_axe_parents(H5VL_iod_object_t *obj, /*IN/OUT*/ size_t *count,
if(cur_req->status == H5AO_PENDING){
if(NULL != parents) {
parents[size] = cur_req->axe_id;
+ cur_req->rc ++;
}
size ++;
}
@@ -1457,7 +1463,7 @@ herr_t
H5VL_iod_get_parent_info(H5VL_iod_object_t *obj, H5VL_loc_params_t loc_params,
const char *name, /*OUT*/iod_obj_id_t *iod_id,
/*OUT*/iod_handle_t *iod_oh, /*OUT*/uint64_t *axe_id,
- /*OUT*/char **new_name, /*OUT*/const H5VL_iod_object_t **last_obj)
+ /*OUT*/char **new_name, /*OUT*/H5VL_iod_object_t **last_obj)
{
iod_obj_id_t cur_id;
iod_handle_t cur_oh;
@@ -1573,6 +1579,7 @@ H5VL_iod_get_parent_info(H5VL_iod_object_t *obj, H5VL_loc_params_t loc_params,
if(cur_obj->request && cur_obj->request->status == H5AO_PENDING) {
*axe_id = cur_obj->request->axe_id;
+ cur_obj->request->rc ++;
}
else {
*axe_id = 0;