void mca_btl_sctp_proc_destruct(mca_btl_sctp_proc_t* stcp_proc) { /* remove from list of all proc instances */ OPAL_THREAD_LOCK(&mca_btl_sctp_component.sctp_lock); opal_hash_table_remove_value_uint64(&mca_btl_sctp_component.sctp_procs, ompi_rte_hash_name(&stcp_proc->proc_ompi->proc_name)); OPAL_THREAD_UNLOCK(&mca_btl_sctp_component.sctp_lock); /* release resources */ if(NULL != stcp_proc->proc_endpoints) { free(stcp_proc->proc_endpoints); } OBJ_DESTRUCT(&stcp_proc->proc_lock); }
static void mca_oob_tcp_msg_ident(mca_oob_tcp_msg_t* msg, mca_oob_tcp_peer_t* peer) { orte_process_name_t src = msg->msg_hdr.msg_src; OPAL_THREAD_LOCK(&mca_oob_tcp_component.tcp_lock); if (orte_util_compare_name_fields(ORTE_NS_CMP_ALL, &peer->peer_name, &src) != OPAL_EQUAL) { opal_hash_table_remove_value_uint64(&mca_oob_tcp_component.tcp_peers, orte_util_hash_name(&peer->peer_name)); peer->peer_name = src; opal_hash_table_set_value_uint64(&mca_oob_tcp_component.tcp_peers, orte_util_hash_name(&peer->peer_name), peer); } OPAL_THREAD_UNLOCK(&mca_oob_tcp_component.tcp_lock); }
static void mca_common_monitoring_coll_cond_release(mca_monitoring_coll_data_t*data) { #if OPAL_ENABLE_DEBUG if( NULL == data ) { OPAL_MONITORING_PRINT_ERR("coll: release: data structure empty or already desallocated"); return; } #endif /* OPAL_ENABLE_DEBUG */ if( data->is_released ) { /* if the communicator is already released */ opal_hash_table_remove_value_uint64(comm_data, *((uint64_t*)&data->p_comm)); data->p_comm = NULL; free(data->comm_name); free(data->procs); OBJ_RELEASE(data); } }
static int remove_data(const opal_identifier_t *uid, const char *key) { proc_data_t *proc_data; opal_value_t *kv; opal_identifier_t id; /* to protect alignment, copy the data across */ memcpy(&id, uid, sizeof(opal_identifier_t)); /* lookup the specified proc */ if (NULL == (proc_data = lookup_opal_proc(&hash_data, id))) { /* no data for this proc */ return OPAL_SUCCESS; } /* if key is NULL, remove all data for this proc */ if (NULL == key) { while (NULL != (kv = (opal_value_t *) opal_list_remove_first(&proc_data->data))) { OBJ_RELEASE(kv); } /* remove the proc_data object itself from the jtable */ opal_hash_table_remove_value_uint64(&hash_data, id); /* cleanup */ OBJ_RELEASE(proc_data); return OPAL_SUCCESS; } /* remove this item */ for (kv = (opal_value_t*) opal_list_get_first(&proc_data->data); kv != (opal_value_t*) opal_list_get_end(&proc_data->data); kv = (opal_value_t*) opal_list_get_next(kv)) { if (0 == strcmp(key, kv->key)) { opal_list_remove_item(&proc_data->data, &kv->super); if (!(kv->scope & OPAL_SCOPE_REFER)) { OBJ_RELEASE(kv); } break; } } return OPAL_SUCCESS; }