mccp_result_t mccp_hashmap_iterate(mccp_hashmap_t *hmptr, mccp_hashmap_iteration_proc_t proc, void *arg) { mccp_result_t ret = MCCP_RESULT_ANY_FAILURES; if (hmptr != NULL && *hmptr != NULL && proc != NULL) { /* * The proc could modify hash values so we use write lock. */ s_write_lock(*hmptr); { ret = s_iterate(hmptr, proc, arg); } s_unlock(*hmptr); } else { ret = MCCP_RESULT_INVALID_ARGS; } return ret; }
lagopus_result_t lagopus_hashmap_iterate(lagopus_hashmap_t *hmptr, lagopus_hashmap_iteration_proc_t proc, void *arg) { lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES; if (hmptr != NULL && *hmptr != NULL && proc != NULL) { int cstate; /* * The proc could modify hash values so we use write lock. */ s_write_lock(*hmptr, &cstate); { ret = s_iterate(hmptr, proc, arg); } s_unlock(*hmptr, cstate); } else { ret = LAGOPUS_RESULT_INVALID_ARGS; } return ret; }
mccp_result_t mccp_hashmap_iterate_no_lock(mccp_hashmap_t *hmptr, mccp_hashmap_iteration_proc_t proc, void *arg) { mccp_result_t ret = MCCP_RESULT_ANY_FAILURES; if (hmptr != NULL && *hmptr != NULL && proc != NULL) { ret = s_iterate(hmptr, proc, arg); } else { ret = MCCP_RESULT_INVALID_ARGS; } return ret; }
lagopus_result_t lagopus_hashmap_iterate_no_lock(lagopus_hashmap_t *hmptr, lagopus_hashmap_iteration_proc_t proc, void *arg) { lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES; if (hmptr != NULL && *hmptr != NULL && proc != NULL) { ret = s_iterate(hmptr, proc, arg); } else { ret = LAGOPUS_RESULT_INVALID_ARGS; } return ret; }