rem: waitpid(pid, &status, 0);
add: wait_process(pid, &status);
context: int client_run(int f_in, int f_out, int pid, int argc, char *argv[]){	struct file_list *flist;	int status = 0, status2 = 0;	char *local_name = NULL;	extern int am_sender;	extern int list_only;	setup_protocol(f_out,f_in);		if (am_sender) {		extern int cvs_exclude;		extern int delete_mode;		extern int delete_excluded;		if (cvs_exclude)			add_cvs_excludes();		if (delete_mode && !delete_excluded) 			send_exclude_list(f_out);		flist = send_file_list(f_out,argc,argv);		if (verbose > 3) 			rprintf(FINFO,"file list sent\n");		send_files(flist,f_out,f_in);		if (pid != -1) {			if (verbose > 3)				rprintf(FINFO,"client_run waiting on %d\n",pid);			io_flush();			waitpid(pid, &status, 0);		}		report(-1);		exit_cleanup(status);	}	if (argc == 0) list_only = 1;		send_exclude_list(f_out);		flist = recv_file_list(f_in);	if (!flist || flist->count == 0) {		rprintf(FINFO,"client: nothing to do\n");		exit_cleanup(0);	}		local_name = get_local_name(flist,argv[0]);		status2 = do_recv(f_in,f_out,flist,local_name);		if (pid != -1) {		if (verbose > 3)			rprintf(FINFO,"client_run2 waiting on %d\n",pid);		io_flush();		waitpid(pid, &status, 0);	}		return status | status2;}