mirror of https://github.com/pkolano/shift.git
Shift 7.0
parent
f004bcfe82
commit
82e9ad2643
18
CHANGES
18
CHANGES
|
@ -54,7 +54,7 @@ CHANGES
|
|||
- Fixed table of contents truncation during remote tar creation
|
||||
|
||||
* Shift 4.0 (07/23/15)
|
||||
- Note that this version is not backward compatible with previous versions
|
||||
- Note that metadata is not backward compatible with previous versions
|
||||
- Added backgroundable, parallelizable, and restartable initialization
|
||||
- Added --newer and --older options for incremental backups
|
||||
- Added --preallocate option to preallocate files below given sparsity
|
||||
|
@ -196,7 +196,7 @@ CHANGES
|
|||
- Fixed hash errors when remote source mapped to local file system
|
||||
|
||||
* Shift 6.0 (01/16/19)
|
||||
- Note that this version is not backward compatible with previous versions
|
||||
- Note that metadata is not backward compatible with previous versions
|
||||
- Added depth-first file stage processing using --pipeline
|
||||
- Added CSV history output using --history=csv
|
||||
- Added disablement of email status for states given in --no-mail
|
||||
|
@ -303,3 +303,17 @@ CHANGES
|
|||
- Fixed missing write error handling in fish and fish-tcp transports
|
||||
- Fixed metadata counts during tar creation renames with --restart=ignore
|
||||
- Fixed bad newline handling in shift-aux escape/unescape commands
|
||||
|
||||
* Shift 7.0 (10/04/19)
|
||||
- Note that metadata is not backward compatible with previous versions
|
||||
- Fixed vulnerability in root --stats/--status due to use of Storable
|
||||
when metadata directly accessible by users (bug report by J. Neff)
|
||||
- Fixed race condition causing permission denied during some remote mkdirs
|
||||
- Fixed built-in checksums when thread creation fails
|
||||
- Fixed chattrs when thread creation fails
|
||||
- Fixed leftover shift-bin processes due to unneeded chattr thread spawns
|
||||
- Fixed exception when setting binmode on remote file handles
|
||||
- Fixed local dmget calls during traversal when source is not local
|
||||
- Fixed duplicated source tar lines in dmget input files
|
||||
- Fixed deceptive thread creation errors during fish-tcp initialization
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ use Symbol qw(gensym);
|
|||
use Sys::Hostname;
|
||||
use Text::ParseWords;
|
||||
|
||||
our $VERSION = 6.03;
|
||||
our $VERSION = 7.0;
|
||||
|
||||
# do not die when receiving sigpipe
|
||||
$SIG{PIPE} = 'IGNORE';
|
||||
|
@ -1471,17 +1471,18 @@ sub sum {
|
|||
}
|
||||
|
||||
return if (!$perl{threads} || $opts{threads} <= 1);
|
||||
# choose min of specified threads and amount of work
|
||||
my $nthr = min($opts{threads}, $q->pending);
|
||||
my @threads = map {threads->create(sub {
|
||||
while (defined (my $sum = $q->dequeue)) {
|
||||
# choose min of specified threads minus self and amount of work
|
||||
my $nthr = min($opts{threads} - 1, $q->pending);
|
||||
my $dqsum = sub {
|
||||
while (defined (my $sum = $q->dequeue_nb)) {
|
||||
my ($qi, $i, $file, $x1, $x2) = @{$sum};
|
||||
my $hash = sum1($file, $x1, $x2);
|
||||
$qret->enqueue([$qi, $i, $hash]);
|
||||
}
|
||||
})} (1 .. $nthr);
|
||||
# force threads to exit
|
||||
$q->enqueue(undef) foreach (@threads);
|
||||
};
|
||||
my @threads = map {threads->create($dqsum)} (1 .. $nthr);
|
||||
# ensure work gets done even if thread creation fails
|
||||
&$dqsum();
|
||||
foreach (@threads) {
|
||||
$_->join if ($_);
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue