Skip to content
Permalink
Browse files

Fix consecutive mergeOutput calls breaking due to mis-order

  • Loading branch information...
elileka committed May 29, 2019
1 parent 8a1d1ca commit 63f6ac29bef599d86e7e80ac3db8dc220fe7d0d4
Showing with 5 additions and 1 deletion.
  1. +5 −1 src/prefiltering/Prefiltering.cpp
@@ -394,7 +394,8 @@ void Prefiltering::mergeOutput(const std::string &outDB, const std::string &outD
std::string result;
result.reserve(BUFFER_SIZE);
char buffer[100];
#pragma omp for schedule(dynamic, 2)
// dynamic schedule causes mis-order of the input files during merge. Needs to be fixed there
#pragma omp for schedule(static)
for (size_t id = 0; id < dbr.getSize(); id++) {
unsigned int dbKey = dbr.getDbKey(id);
char *data = dbr.getData(id, thread_idx);
@@ -410,8 +411,11 @@ void Prefiltering::mergeOutput(const std::string &outDB, const std::string &outD
result.clear();
}
}

// TODO: we close with "true" because multiple calls to mergeOutput call mergeFilePair that expects two file (merged input)
dbw.close(true);
dbr.close();

DBReader<unsigned int>::removeDb(tmpDb.first);

Debug(Debug::INFO) << "\nTime for merging results: " << timer.lap() << "\n";

0 comments on commit 63f6ac2

Please sign in to comment.
You can’t perform that action at this time.