int opal_crs_blcr_module_finalize(void) { opal_output_verbose(10, mca_crs_blcr_component.super.output_handle, "crs:blcr: module_finalize()"); /* Cleanup some memory */ if( NULL != blcr_restart_cmd ) { free(blcr_restart_cmd); blcr_restart_cmd = NULL; } if( NULL != blcr_checkpoint_cmd ) { free(blcr_checkpoint_cmd); blcr_checkpoint_cmd = NULL; } if( !opal_cr_is_tool ) { OBJ_DESTRUCT(&blcr_lock); OBJ_DESTRUCT(&blcr_cond); /* Unload the thread callback */ cr_replace_callback(cr_thread_callback_id, NULL, NULL, CR_THREAD_CONTEXT); /* Unload the signal callback */ cr_replace_callback(cr_signal_callback_id, NULL, NULL, CR_SIGNAL_CONTEXT); } /* BLCR does not have a finalization routine */ return OPAL_SUCCESS; }
int opal_crs_blcr_module_finalize(void) { opal_output_verbose(10, mca_crs_blcr_component.super.output_handle, "crs:blcr: module_finalize()"); /* Cleanup some memory */ if( NULL != blcr_restart_cmd ) { free(blcr_restart_cmd); blcr_restart_cmd = NULL; } if( NULL != blcr_checkpoint_cmd ) { free(blcr_checkpoint_cmd); blcr_checkpoint_cmd = NULL; } if( !opal_cr_is_tool ) { OBJ_DESTRUCT(&blcr_lock); OBJ_DESTRUCT(&blcr_cond); if( OPAL_CRS_RUNNING == blcr_current_state ) { /* Unload the thread callback */ cr_replace_callback(cr_thread_callback_id, NULL, NULL, CR_THREAD_CONTEXT); /* Unload the signal callback */ cr_replace_callback(cr_signal_callback_id, NULL, NULL, CR_SIGNAL_CONTEXT); } #if OPAL_ENABLE_CRDEBUG == 1 /* * Checkpoint/restart enabled debugging hooks */ cr_register_hook(CR_HOOK_CONT_NO_CALLBACKS, NULL); cr_register_hook(CR_HOOK_CONT_SIGNAL_CONTEXT, NULL); cr_register_hook(CR_HOOK_RSTRT_NO_CALLBACKS, NULL); cr_register_hook(CR_HOOK_RSTRT_SIGNAL_CONTEXT, NULL); #endif } /* BLCR does not have a finalization routine */ blcr_current_state = OPAL_CRS_NONE; return OPAL_SUCCESS; }