size_t BlockHashIndex::Save(std::FILE * mphf) { m_queue = std::priority_queue<int>(); BeginSave(mphf); for(size_t i = 0; i < m_hashes.size(); i++) SaveRange(i); return FinalizeSave(); }
void BlockHashIndex::SaveLastRange() { #ifdef WITH_THREADS boost::mutex::scoped_lock lock(m_mutex); #endif while(!m_queue.empty() && m_lastSaved + 1 == -m_queue.top()) { size_t current = -m_queue.top(); m_queue.pop(); SaveRange(current); m_lastSaved = current; } }