danger bug fix
This commit is contained in:
parent
525c5e204e
commit
0e0febeb5f
@ -30,6 +30,7 @@ int main()
|
||||
//参数列表 <文件分块内存大小,单个DNA序列最长大小>("输入文件名","输出文件名",序列处理函数);
|
||||
//这个函数在src/tools/dna里面
|
||||
dna::open_file_and_calculate<(size_t)4*1024 * 1024 *1024 , (size_t)5e4+5>("filteredReads.txt", "reversedSequence.txt",reverseComplement);
|
||||
// dna::open_file_and_calculate<(size_t)30, (size_t)5e4 + 5>("test.txt", "test.out.txt", reverseComplement);
|
||||
|
||||
}catch(const std::exception &e){
|
||||
zt::eprint(
|
||||
|
@ -74,8 +74,10 @@ namespace dna {
|
||||
Spent all_spent("All spent"); //自动计时器,给主函数计时
|
||||
unsigned int chunk_id = 0;
|
||||
size_t last_buf_size = 0;
|
||||
|
||||
while (input_file_stream.eof()==false)
|
||||
{
|
||||
size_t recovered_size = 0;
|
||||
Spent chunk_spent(zt::fmt("chunk_id:[",++chunk_id,"]"));
|
||||
{
|
||||
Spent chunk_read_spent(zt::fmt("read_chunk_id:[",chunk_id,"]"));
|
||||
@ -108,8 +110,10 @@ namespace dna {
|
||||
}
|
||||
// lines=!lines;
|
||||
output_file_stream.write(tmp_buf.data(), last_buf_size+end_pos+1);
|
||||
start_pos=end_pos+1;
|
||||
recovered_size=end_pos+1;
|
||||
}else{
|
||||
THROW_RT_ERROR("DNA incompleteness")
|
||||
THROW_RT_ERROR("DNA incompleteness, chunk Size is too small !!")
|
||||
}
|
||||
last_buf_size=0;
|
||||
}
|
||||
@ -152,12 +156,12 @@ namespace dna {
|
||||
|
||||
if(start_pos!=buf_len){
|
||||
zt::print("Saving interrupt chunk_id[",chunk_id,"]\n");
|
||||
std::memcpy(tmp_buf.data(),buf.data()+start_pos+1,(last_buf_size = buf_len-start_pos-1));
|
||||
std::memcpy(tmp_buf.data(),buf.data()+start_pos,(last_buf_size = buf_len-start_pos));
|
||||
}
|
||||
|
||||
{
|
||||
Spent chunk_write_spent(zt::fmt("write_chunk_id:[",chunk_id,"] , ","[Wrote bytes] ",NAME_VALUE(start_pos)));
|
||||
output_file_stream.write(buf.data(), start_pos);
|
||||
output_file_stream.write(buf.data()+recovered_size, start_pos-recovered_size);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user