Skip to content

Commit 435a203

Browse files
author
android-build-team Robot
committed
Merge cherrypicks of [3156476, 3155698, 3156194, 3156639, 3156018, 3156477, 3156098, 3156099, 3156100, 3156101, 3156102, 3158393, 3155699, 3155700, 3156195, 3156196, 3156019, 3156020, 3158394] into oc-mr1-release
Change-Id: I2a293bf3975f633db807bb800e1707f73e8d74b9
2 parents 43da853 + ba30867 commit 435a203

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

update_verifier/update_verifier.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,11 +137,12 @@ static bool read_blocks(const std::string& partition, const std::string& range_s
137137
LOG(ERROR) << "Error in parsing range string.";
138138
return false;
139139
}
140+
range_count /= 2;
140141

141142
std::vector<std::future<bool>> threads;
142143
size_t thread_num = std::thread::hardware_concurrency() ?: 4;
143-
thread_num = std::min(thread_num, range_count / 2);
144-
size_t group_range_count = range_count / thread_num;
144+
thread_num = std::min(thread_num, range_count);
145+
size_t group_range_count = (range_count + thread_num - 1) / thread_num;
145146

146147
for (size_t t = 0; t < thread_num; t++) {
147148
auto thread_func = [t, group_range_count, &dm_block_device, &ranges, &partition]() {
@@ -154,7 +155,8 @@ static bool read_blocks(const std::string& partition, const std::string& range_s
154155
return false;
155156
}
156157

157-
for (size_t i = 1 + group_range_count * t; i < group_range_count * (t + 1) + 1; i += 2) {
158+
for (size_t i = group_range_count * 2 * t + 1;
159+
i < std::min(group_range_count * 2 * (t + 1) + 1, ranges.size()); i += 2) {
158160
unsigned int range_start, range_end;
159161
bool parse_status = android::base::ParseUint(ranges[i], &range_start);
160162
parse_status = parse_status && android::base::ParseUint(ranges[i + 1], &range_end);

0 commit comments

Comments
 (0)