Skip to content

Commit ebdb86a

Browse files
global mutex
Signed-off-by: AdityaPandeyCN <[email protected]>
1 parent 3192baa commit ebdb86a

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/ramcore/SamToNTuple.cxx

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)