Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
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;
}