void wait_process(pid_t pid, int *status)
{
while (waitpid(pid, status, WNOHANG) == 0) {
- sleep(1);
+ msleep(20);
io_flush();
}
*status = WEXITSTATUS(*status);
close(recv_pipe[1]);
io_flush();
/* finally we go to sleep until our parent kills us
- with a USR2 signal. We sleepp for a short time as on
+ with a USR2 signal. We sleep for a short time as on
some OSes a signal won't interrupt a sleep! */
- while (1) sleep(1);
+ while (1) msleep(20);
}
close(recv_pipe[1]);
close(error_pipe[1]);
- io_close_input(f_in);
if (f_in != f_out) close(f_in);
io_start_buffering(f_out);
int status = 0, status2 = 0;
char *local_name = NULL;
extern int am_sender;
- extern int list_only;
extern int remote_version;
set_nonblocking(f_in);
exit_cleanup(status);
}
- if (argc == 0) list_only = 1;
+ if (argc == 0) {
+ extern int list_only;
+ list_only = 1;
+ }
send_exclude_list(f_out);
usage(FERROR);
exit_cleanup(RERR_SYNTAX);
}
+
+ if (argc == 0 && !am_sender) {
+ extern int list_only;
+ list_only = 1;
+ }
pid = do_cmd(shell_cmd,shell_machine,shell_user,shell_path,&f_in,&f_out);