示例#1
0
mccp_result_t
mccp_hashmap_clear(mccp_hashmap_t *hmptr, bool free_values) {
  mccp_result_t ret = MCCP_RESULT_ANY_FAILURES;

  if (hmptr != NULL &&
      *hmptr != NULL) {

    s_write_lock(*hmptr);
    {
      if ((*hmptr)->m_is_operational == true) {
        (*hmptr)->m_is_operational = false;
        s_reinit(*hmptr, free_values);
        (*hmptr)->m_is_operational = true;
        ret = MCCP_RESULT_OK;
      } else {
        ret = MCCP_RESULT_NOT_OPERATIONAL;
      }
    }
    s_unlock(*hmptr);

  } else {
    ret = MCCP_RESULT_INVALID_ARGS;
  }

  return ret;
}
示例#2
0
static inline lagopus_result_t
s_clear(lagopus_hashmap_t *hmptr, bool free_values) {
  lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES;

  if ((*hmptr)->m_is_operational == true) {
    (*hmptr)->m_is_operational = false;
    s_reinit(*hmptr, free_values);
    (*hmptr)->m_is_operational = true;
    ret = LAGOPUS_RESULT_OK;
  } else {
    ret = LAGOPUS_RESULT_NOT_OPERATIONAL;
  }

  return ret;
}