Add parallel transaction support for remote source or target specifications.
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 10 Apr 2008 22:09:08 +0000 (22:09 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 10 Apr 2008 22:09:08 +0000 (22:09 +0000)
commita2dc574ce267db75e11037efdd569f64845072ec
tree2f38d0c00aac4ddc262e592724d3e20385ce9345
parent52347f71f500fe4113e37cca4ea6edc6150698e7
Add parallel transaction support for remote source or target specifications.
The implementation is a bit crude because I don't want to take too many
chances on a codebase that wasn't originally designed to be multi-threaded,
so the master mutex is only released when a thread is waiting for input
on a socket.

* Add the -p<threads> option and compile -pthread by default.  This is only
  useful when the source and/or destination is a remote host.  Note that
  parallel transaction mode will not work with older cpdup binaries on the
  remote end.

  This greatly improves cpdup's performance when operating on a remote
  source and/or target.

* Add -l to force stdout and stderr to be line-buffered.
bin/cpdup/Makefile
bin/cpdup/cpdup.1
bin/cpdup/cpdup.c
bin/cpdup/cpdup.h
bin/cpdup/hclink.c
bin/cpdup/hclink.h
bin/cpdup/hcproto.c
bin/cpdup/hcproto.h
bin/cpdup/misc.c