rsync windows -> unix still hanging :(

Jim Kleckner jek_subs@kleckner.net
Mon Dec 30 19:14:00 GMT 2002


The msleep(100) call is not checked into version 1.156 of main.c.

I would recommend trying this one-line patch to see if it helps.
I haven't personally delved into the true meaning.

I just checked my read-only CVS tree for rsync again.
Here is the context diff for that file.  Note that the msleep(100)
is not in the checked in version.

Jim

Index: main.c
===================================================================
RCS file: /cvsroot/rsync/main.c,v
retrieving revision 1.156
diff -c -r1.156 main.c
*** main.c    1 Aug 2002 20:46:59 -0000    1.156
--- main.c    31 Dec 2002 01:21:34 -0000
***************
*** 346,351 ****
--- 346,353 ----
          exit_cleanup(0);
      }
 
+         io_start_buffering_in(f_in);
+         io_start_buffering_out(f_out);
      send_files(flist,f_out,f_in);
      io_flush();
      report(f_out);
***************
*** 421,427 ****
      close(error_pipe[1]);
      if (f_in != f_out) close(f_in);
 
!     io_start_buffering(f_out);
 
      io_set_error_fd(error_pipe[0]);
 
--- 423,429 ----
      close(error_pipe[1]);
      if (f_in != f_out) close(f_in);
 
!     io_start_buffering_out(f_out);
 
      io_set_error_fd(error_pipe[0]);
 
***************
*** 434,440 ****
          write_int(f_out, -1);
      }
      io_flush();
!
      kill(pid, SIGUSR2);
      wait_process(pid, &status);
      return status;
--- 436,442 ----
          write_int(f_out, -1);
      }
      io_flush();
!     msleep(100);
      kill(pid, SIGUSR2);
      wait_process(pid, &status);
      return status;
***************
*** 476,481 ****
--- 478,484 ----
          }   
      }
 
+         io_start_buffering_in(f_in);
      if (delete_mode && !delete_excluded)
          recv_exclude_list(f_in);
 
***************
*** 569,574 ****
--- 572,578 ----
          extern int cvs_exclude;
          extern int delete_mode;
          extern int delete_excluded;
+                 io_start_buffering_out(f_out);
          if (cvs_exclude)
              add_cvs_excludes();
          if (delete_mode && !delete_excluded)
***************
*** 578,584 ****
--- 582,591 ----
          if (verbose > 3)
              rprintf(FINFO,"file list sent\n");
 
+                 io_flush();
+                 io_start_buffering_out(f_out);
          send_files(flist,f_out,f_in);
+                 io_flush();
          if (remote_version >= 24) {
              /* final goodbye message */       
              read_int(f_in);
***************
*** 590,595 ****
--- 597,603 ----
              wait_process(pid, &status);
          }
          report(-1);
+         io_flush();
          exit_cleanup(status);
      }
 


Mike Rubel wrote:

>[ ... ]
>
>
>
>Could you clarify for me whether the patch Steve refers to is the same as
>(or has the same effect as) the one you describe below?  Or are they two
>different animals?  If they are different, should we test whether this
>patch fixes his specific problem?
>
>Best regards,
>Mike
>
>http://www.mikerubel.org
>



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list