#else if(stop_subsystem(this_subsys) == FALSE) { result = I_FAIL; } else { int lpc = CLIENT_EXIT_WAIT; int pid_status = -1; while(lpc-- > 0 && this_subsys->pid > 0 && CL_PID_EXISTS(this_subsys->pid)) {  sleep(1); waitpid(this_subsys->pid, &pid_status, WNOHANG); }  if(CL_PID_EXISTS(this_subsys->pid)) { cl_log(LOG_ERR, "Process %s is still active [pid=%d]", this_subsys->command, this_subsys->pid); result = I_FAIL; } }  cleanup_subsystem(this_subsys); #endif 
do_cib_control(long long action,	       enum crmd_fsa_cause cause,	       enum crmd_fsa_state cur_state,	       enum crmd_fsa_input current_input,	       void *data){	enum crmd_fsa_input result = I_NULL;	struct crm_subsystem_s *this_subsys = cib_subsystem;		long long stop_actions = A_CIB_STOP;	long long start_actions = A_CIB_START;	FNIN();		if(action & stop_actions) {#if INTEGRATED_CIB		// dont do anything, its embedded now#else		if(stop_subsystem(this_subsys) == FALSE) {			result = I_FAIL;		} else {			int lpc = CLIENT_EXIT_WAIT;			int pid_status = -1;			while(lpc-- > 0			      && this_subsys->pid > 0			      && CL_PID_EXISTS(this_subsys->pid)) {				sleep(1);				waitpid(this_subsys->pid, &pid_status, WNOHANG);			}						if(CL_PID_EXISTS(this_subsys->pid)) {				cl_log(LOG_ERR,				       "Process %s is still active [pid=%d]",				       this_subsys->command, this_subsys->pid);				result = I_FAIL;			} 		}		cleanup_subsystem(this_subsys);#endif	}	if(action & start_actions) {		if(cur_state != S_STOPPING) {#if INTEGRATED_CIB			if(startCib(CIB_FILENAME) == FALSE)				result = I_FAIL;#else			if(start_subsystem(this_subsys) == FALSE) {				result = I_FAIL;				cleanup_subsystem(this_subsys);			}#endif		} else {			cl_log(LOG_INFO,			       "Ignoring request to start %s after shutdown",			       this_subsys->command);		}	}		FNRET(result);}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/b8feda24a1dd4ccd7314570547b5aed004f77978/subsystems.c/clean/crm/crmd/subsystems.c