int call_id = 0;
do_pe_invoke(long long action,	     enum crmd_fsa_cause cause,	     enum crmd_fsa_state cur_state,	     enum crmd_fsa_input current_input,	     fsa_data_t *msg_data){	int call_id = 0;	if(is_set(fsa_input_register, R_PE_CONNECTED) == FALSE){		if(pe_subsystem->pid > 0) {			int pid_status = -1;			int rc = waitpid(				pe_subsystem->pid, &pid_status, WNOHANG);			if(rc > 0 && WIFEXITED(pid_status)) {				clear_bit_inplace(fsa_input_register,						  pe_subsystem->flag_connected);					if(is_set(fsa_input_register,					  pe_subsystem->flag_required)) {					/* this wasnt supposed to happen */					crm_err("%s[%d] terminated during start",						pe_subsystem->name,						pe_subsystem->pid);					register_fsa_error(						C_FSA_INTERNAL, I_ERROR, NULL);				}				pe_subsystem->pid = -1;				return I_NULL;			}		} 				crm_info("Waiting for the PE to connect");		crmd_fsa_stall(NULL);		return I_NULL;			}	if(is_set(fsa_input_register, R_HAVE_CIB) == FALSE) {		crm_err("Attempted to invoke the PE without a consistent"			" copy of the CIB!");		/* start the join from scratch */		register_fsa_input_before(C_FSA_INTERNAL, I_ELECTION, NULL);		return I_NULL;			}		crm_debug("Requesting the current CIB");	call_id = fsa_cib_conn->cmds->query(		fsa_cib_conn, NULL, NULL, cib_scope_local);	if(FALSE == add_cib_op_callback(		   call_id, TRUE, NULL, do_pe_invoke_callback)) {		crm_err("Cant retrieve the CIB to invoke the %s subsystem with",			pe_subsystem->name);		register_fsa_error(C_FSA_INTERNAL, I_ERROR, NULL);	}		return I_NULL;		}