crm_debug("Starting the finalization timer"); startTimer(finalization_timer);
do_dc_join_finalize(long long action,		    enum crmd_fsa_cause cause,		    enum crmd_fsa_state cur_state,		    enum crmd_fsa_input current_input,		    void *data){	if(! is_set(fsa_input_register, R_HAVE_CIB)) {		if(is_set(fsa_input_register, R_CIB_ASKED)) {			return I_WAIT_FOR_EVENT;		}				set_bit_inplace(fsa_input_register, R_CIB_ASKED);		/* ask for the agreed best CIB */		crm_info("Asking %s for its copy of the CIB",			 max_generation_from);				send_request(NULL, NULL, CRM_OP_RETRIVE_CIB,			     max_generation_from, CRM_SYSTEM_CRMD, NULL);		return I_WAIT_FOR_EVENT;	} 	num_join_invites = 0;	crm_debug("Notifying %d clients of join results",		  g_hash_table_size(join_requests));	g_hash_table_foreach(join_requests, finalize_join_for, NULL);		if(num_join_invites <= g_hash_table_size(confirmed_nodes)) {		crm_info("Not expecting any join confirmations");		return I_SUCCESS;	}	/* dont waste time by invoking the pe yet; */	crm_debug("Still waiting on %d outstanding join confirmations",		  num_join_invites - g_hash_table_size(confirmed_nodes));	return I_NULL;}