Manage a lock on StatsOnValues

This commit is contained in:
Eric Coissac
2025-06-17 16:46:11 +02:00
parent 8a2bb1fe82
commit 9965370d85
9 changed files with 230 additions and 100 deletions

View File

@@ -11,11 +11,13 @@ import (
func (sequence *BioSequence) TaxonomicDistribution(taxonomy *obitax.Taxonomy) map[*obitax.TaxNode]int {
taxids := sequence.StatsOn(MakeStatsOnDescription("taxid"), "na")
taxons := make(map[*obitax.TaxNode]int, len(taxids))
taxons := make(map[*obitax.TaxNode]int, taxids.Len())
taxonomy = taxonomy.OrDefault(true)
for taxid, v := range taxids {
taxids.RLock()
defer taxids.RUnlock()
for taxid, v := range taxids.Map() {
t, isAlias, err := taxonomy.Taxon(taxid)
if err != nil {
log.Fatalf(