static void ft_event(int state) { #if 0 opal_list_item_t *item; #endif if(OPAL_CRS_CHECKPOINT == state) { #if 0 /* * Disable event processing while we are working */ opal_event_disable(); #endif } else if(OPAL_CRS_CONTINUE == state) { #if 0 /* * Resume event processing */ opal_event_enable(); } else if(OPAL_CRS_RESTART == state) { /* * Clean out cached connection information * Select pieces of finalize/init */ for (item = opal_list_remove_first(&mca_oob_tcp_module.peer_list); item != NULL; item = opal_list_remove_first(&mca_oob_tcp_module.peer_list)) { mca_oob_tcp_peer_t* peer = (mca_oob_tcp_peer_t*)item; /* JJH: Use the below command for debugging restarts with invalid sockets * mca_oob_tcp_peer_dump(peer, "RESTART CLEAN") */ MCA_OOB_TCP_PEER_RETURN(peer); } OBJ_DESTRUCT(&mca_oob_tcp_module.peer_free); OBJ_DESTRUCT(&mca_oob_tcp_module.peer_names); OBJ_DESTRUCT(&mca_oob_tcp_module.peers); OBJ_DESTRUCT(&mca_oob_tcp_module.peer_list); OBJ_CONSTRUCT(&mca_oob_tcp_module.peer_list, opal_list_t); OBJ_CONSTRUCT(&mca_oob_tcp_module.peers, opal_hash_table_t); OBJ_CONSTRUCT(&mca_oob_tcp_module.peer_names, opal_hash_table_t); OBJ_CONSTRUCT(&mca_oob_tcp_module.peer_free, opal_free_list_t); /* * Resume event processing */ opal_event_enable(); #endif } else if(OPAL_CRS_TERM == state ) { ; } else { ; } return; }
int mca_btl_base_close(void) { opal_list_item_t *item; mca_btl_base_selected_module_t *sm; if( mca_btl_base_already_opened <= 0 ) { return OMPI_ERROR; } else if (--mca_btl_base_already_opened > 0) { return OMPI_SUCCESS; } /* disable event processing while cleaning up btls */ opal_event_disable(); /* Finalize all the btl components and free their list items */ for (item = opal_list_remove_first(&mca_btl_base_modules_initialized); NULL != item; item = opal_list_remove_first(&mca_btl_base_modules_initialized)) { sm = (mca_btl_base_selected_module_t *) item; /* Blatebtly ignore the return code (what would we do to recover, anyway? This component is going away, so errors don't matter anymore) */ sm->btl_module->btl_finalize(sm->btl_module); free(sm); } /* Close all remaining opened components (may be one if this is a OMPI RTE program, or [possibly] multiple if this is ompi_info) */ if (0 != opal_list_get_size(&mca_btl_base_components_opened)) { mca_base_components_close(mca_btl_base_output, &mca_btl_base_components_opened, NULL, true); } /* cleanup */ if(NULL != mca_btl_base_include) free(mca_btl_base_include); if(NULL != mca_btl_base_exclude) free(mca_btl_base_exclude); /* restore event processing */ opal_event_enable(); /* All done */ return OMPI_SUCCESS; }