@@ -47,7 +47,7 @@ void samtoramntuple(const char *datafile,
4747 writeOptions.SetMaxUnzippedPageSize (64000 );
4848
4949 auto writer = ROOT::RNTupleWriter::Append (std::move (model), " RAM" , *rootFile, writeOptions);
50- auto defaultEntry = writer-> GetModel ().CreateEntry ();
50+ auto defaultEntry = writerGetModel ().CreateEntry ();
5151 auto recordPtr = defaultEntry->GetPtr <RAMNTupleRecord>(" record" );
5252
5353 TList headers;
@@ -180,9 +180,9 @@ void samtoramntuple_split_by_chromosome(const char *datafile, const char *output
180180 t.join ();
181181 }
182182
183- std::mutex rnext_global_mutex ;
183+ std::mutex global_record_mutex ;
184184
185- auto write_chromosome_parallel = [&](const std::string &chr, std::mutex &rnext_mutex ) {
185+ auto write_chromosome_parallel = [&](const std::string &chr, std::mutex &record_mutex ) {
186186 const auto &records = chromosome_records[chr];
187187
188188 std::string filename = std::string (output_prefix) + " _" + chr + " .root" ;
@@ -219,16 +219,16 @@ void samtoramntuple_split_by_chromosome(const char *datafile, const char *output
219219 recordPtr->SetBit (quality_policy);
220220 recordPtr->SetQNAME (sam_record.qname .c_str ());
221221 recordPtr->SetFLAG (sam_record.flag );
222- recordPtr->SetREFID (sam_record.rname .c_str ());
223- recordPtr->SetPOS (sam_record.pos );
224- recordPtr->SetMAPQ (sam_record.mapq );
225- recordPtr->SetCIGAR (sam_record.cigar .c_str ());
226222
227223 {
228- std::lock_guard<std::mutex> lock (rnext_mutex);
224+ std::lock_guard<std::mutex> lock (record_mutex);
225+ recordPtr->SetREFID (sam_record.rname .c_str ());
229226 recordPtr->SetREFNEXT (sam_record.rnext .c_str ());
230227 }
231228
229+ recordPtr->SetPOS (sam_record.pos );
230+ recordPtr->SetMAPQ (sam_record.mapq );
231+ recordPtr->SetCIGAR (sam_record.cigar .c_str ());
232232 recordPtr->SetPNEXT (sam_record.pnext );
233233 recordPtr->SetTLEN (sam_record.tlen );
234234 recordPtr->SetSEQ (sam_record.seq .c_str ());
@@ -269,7 +269,8 @@ void samtoramntuple_split_by_chromosome(const char *datafile, const char *output
269269 std::vector<std::thread> threads;
270270
271271 for (int i = 0 ; i < num_threads && chr_idx < chr_names.size (); ++i, ++chr_idx) {
272- threads.emplace_back (write_chromosome_parallel, chr_names[chr_idx], std::ref (rnext_global_mutex));
272+
273+ threads.emplace_back (write_chromosome_parallel, chr_names[chr_idx], std::ref (global_record_mutex));
273274 }
274275
275276 for (auto &t : threads) {
0 commit comments