diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2013-08-23 19:24:52 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2013-08-23 19:24:52 (GMT) |
commit | 0f9e1cd95bcc22374e1e444267cb72b1cc8ee299 (patch) | |
tree | f905baef41d3489d32bff72dfc535ec36a9f4f2a /src/H5VLiod_client.c | |
parent | 8c5fc92408736d6df89c1d47f8df85d9c5bf54b7 (diff) | |
download | hdf5-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.c | 11 |
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; |