History

And another one down

Sebastian Thiel committed 5 years ago

Commit abce75e1 parent 7f9be362 files · +12 −4Browse files

Unified · Split

2 files
  1. git-pack/src/index/traverse/reduce.rs +9 −3
  2. git-pack/src/index/traverse/with_lookup.rs +3 −1
git-pack/src/index/traverse/reduce.rs+9−3
@@ -1,6 +1,9 @@
1use crate::{data, index::traverse};1use crate::{data, index::traverse};
2use git_features::{interrupt::is_triggered, parallel, progress::Progress};2use git_features::{parallel, progress::Progress};
3use std::time::Instant;3use std::{
4 sync::atomic::{AtomicBool, Ordering},
5 time::Instant,
6};
4 7
5fn add_decode_result(lhs: &mut data::decode_entry::Outcome, rhs: data::decode_entry::Outcome) {8fn add_decode_result(lhs: &mut data::decode_entry::Outcome, rhs: data::decode_entry::Outcome) {
6 lhs.num_deltas += rhs.num_deltas;9 lhs.num_deltas += rhs.num_deltas;
@@ -24,6 +27,7 @@ pub struct Reducer<'a, P, E> { · 17 unmodified lines
24 then: Instant,27 then: Instant,
25 entries_seen: usize,28 entries_seen: usize,
26 stats: traverse::Outcome,29 stats: traverse::Outcome,
30 should_interrupt: &'a AtomicBool,
27 _error: std::marker::PhantomData<E>,31 _error: std::marker::PhantomData<E>,
28}32}
29 33
@@ -35,6 +39,7 @@ where · 5 unmodified lines
35 progress: &'a parking_lot::Mutex<P>,39 progress: &'a parking_lot::Mutex<P>,
36 pack_data_len_in_bytes: usize,40 pack_data_len_in_bytes: usize,
37 check: traverse::SafetyCheck,41 check: traverse::SafetyCheck,
42 should_interrupt: &'a AtomicBool,
38 ) -> Self {43 ) -> Self {
39 let stats = traverse::Outcome {44 let stats = traverse::Outcome {
40 pack_size: pack_data_len_in_bytes as u64,45 pack_size: pack_data_len_in_bytes as u64,
@@ -45,6 +50,7 @@ where · 4 unmodified lines
45 check,50 check,
46 then: Instant::now(),51 then: Instant::now(),
47 entries_seen: 0,52 entries_seen: 0,
53 should_interrupt,
48 stats,54 stats,
49 _error: Default::default(),55 _error: Default::default(),
50 }56 }
@@ -93,7 +99,7 @@ where · 42 unmodified lines
93 add_decode_result(&mut self.stats.average, chunk_total);99 add_decode_result(&mut self.stats.average, chunk_total);
94 self.progress.lock().set(self.entries_seen);100 self.progress.lock().set(self.entries_seen);
95 101
96 if is_triggered() {102 if self.should_interrupt.load(Ordering::SeqCst) {
97 return Err(Self::Error::Interrupted);103 return Err(Self::Error::Interrupted);
98 }104 }
99 Ok(())105 Ok(())
git-pack/src/index/traverse/with_lookup.rs+3−1
@@ -5,6 +5,7 @@ use git_features::{ · 4 unmodified lines
5 parallel::{self, in_parallel_if},5 parallel::{self, in_parallel_if},
6 progress::{self, unit, Progress},6 progress::{self, unit, Progress},
7};7};
8use std::sync::Arc;
8 9
9mod options {10mod options {
10 use crate::index::traverse::SafetyCheck;11 use crate::index::traverse::SafetyCheck;
@@ -69,6 +70,7 @@ impl index::File { · 58 unmodified lines
69 {70 {
70 let pack_progress = progress.add_child("SHA1 of pack");71 let pack_progress = progress.add_child("SHA1 of pack");
71 let index_progress = progress.add_child("SHA1 of index");72 let index_progress = progress.add_child("SHA1 of index");
73 let should_interrupt = Arc::clone(&should_interrupt);
72 move || {74 move || {
73 let res = self.possibly_verify(pack, check, pack_progress, index_progress, should_interrupt);75 let res = self.possibly_verify(pack, check, pack_progress, index_progress, should_interrupt);
74 if res.is_err() {76 if res.is_err() {
@@ -139,7 +141,7 @@ impl index::File { · 64 unmodified lines
139 }141 }
140 Ok(stats)142 Ok(stats)
141 },143 },
142 Reducer::from_progress(&reduce_progress, pack.data_len(), check),144 Reducer::from_progress(&reduce_progress, pack.data_len(), check, &should_interrupt),
143 )145 )
144 },146 },
145 );147 );

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t