From 18d3eec24a8390edf76805ec0707aa963ca71351 Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Sun, 27 Aug 2023 16:00:35 +0200 Subject: [PATCH] Change the annotation locker to a pointer to mutex to avoid coying mutex Former-commit-id: d179d8753b593183312bd11184e5d8ebb301138a --- pkg/obiseq/biosequence.go | 5 +- pkg/obiseq/class.go | 2 +- pkg/obiseq/language.go | 192 +++++++++++++++++++------------------- pkg/obitax/lca.go | 2 +- 4 files changed, 101 insertions(+), 100 deletions(-) diff --git a/pkg/obiseq/biosequence.go b/pkg/obiseq/biosequence.go index 624d6cf..f0b2a56 100644 --- a/pkg/obiseq/biosequence.go +++ b/pkg/obiseq/biosequence.go @@ -59,7 +59,7 @@ type BioSequence struct { feature []byte paired *BioSequence // A pointer to the paired sequence annotations Annotation - annot_lock sync.Mutex + annot_lock *sync.Mutex } // MakeEmptyBioSequence() creates a new BioSequence object with no data @@ -81,7 +81,7 @@ func MakeEmptyBioSequence(preallocate int) BioSequence { feature: nil, paired: nil, annotations: nil, - annot_lock: sync.Mutex{}, + annot_lock: &sync.Mutex{}, } } @@ -99,6 +99,7 @@ func MakeBioSequence(id string, bs.SetId(id) bs.SetSequence(sequence) bs.SetDefinition(definition) + bs.AnnotationsUnlock() return bs } diff --git a/pkg/obiseq/class.go b/pkg/obiseq/class.go index 21c722b..5120d37 100644 --- a/pkg/obiseq/class.go +++ b/pkg/obiseq/class.go @@ -262,7 +262,7 @@ func SequenceClassifier() *BioSequenceClassifier { defer locke.RUnlock() if k >= maxcode { - log.Fatalf("value %d not register") + log.Fatalf("value %d not register", k) } return decode[k] } diff --git a/pkg/obiseq/language.go b/pkg/obiseq/language.go index 80f47eb..3c76c70 100644 --- a/pkg/obiseq/language.go +++ b/pkg/obiseq/language.go @@ -10,117 +10,117 @@ import ( "github.com/PaesslerAG/gval" ) -func maxIntVector(values []int) float64 { - m := values[0] - for _, v := range values { - if v > m { - m = v - } - } +// func maxIntVector(values []int) float64 { +// m := values[0] +// for _, v := range values { +// if v > m { +// m = v +// } +// } - return float64(m) -} +// return float64(m) +// } -func maxIntMap(values map[string]int) float64 { - var m int - first := true - for _, v := range values { - if first { - first = false - m = v - } else { - if v > m { - m = v - } - } - } +// func maxIntMap(values map[string]int) float64 { +// var m int +// first := true +// for _, v := range values { +// if first { +// first = false +// m = v +// } else { +// if v > m { +// m = v +// } +// } +// } - return float64(m) -} +// return float64(m) +// } -func minIntVector(values []int) float64 { - m := values[0] - for _, v := range values { - if v < m { - m = v - } - } +// func minIntVector(values []int) float64 { +// m := values[0] +// for _, v := range values { +// if v < m { +// m = v +// } +// } - return float64(m) -} +// return float64(m) +// } -func minIntMap(values map[string]int) float64 { - var m int - first := true - for _, v := range values { - if first { - first = false - m = v - } else { - if v < m { - m = v - } - } - } +// func minIntMap(values map[string]int) float64 { +// var m int +// first := true +// for _, v := range values { +// if first { +// first = false +// m = v +// } else { +// if v < m { +// m = v +// } +// } +// } - return float64(m) -} +// return float64(m) +// } -func maxFloatVector(values []float64) float64 { - m := values[0] - for _, v := range values { - if v > m { - m = v - } - } +// func maxFloatVector(values []float64) float64 { +// m := values[0] +// for _, v := range values { +// if v > m { +// m = v +// } +// } - return m -} +// return m +// } -func maxFloatMap(values map[string]float64) float64 { - var m float64 - first := true - for _, v := range values { - if first { - first = false - m = v - } else { - if v > m { - m = v - } - } - } +// func maxFloatMap(values map[string]float64) float64 { +// var m float64 +// first := true +// for _, v := range values { +// if first { +// first = false +// m = v +// } else { +// if v > m { +// m = v +// } +// } +// } - return m -} +// return m +// } -func minFloatVector(values []float64) float64 { - m := values[0] - for _, v := range values { - if v < m { - m = v - } - } +// func minFloatVector(values []float64) float64 { +// m := values[0] +// for _, v := range values { +// if v < m { +// m = v +// } +// } - return m -} +// return m +// } -func minFloatMap(values map[string]float64) float64 { - var m float64 - first := true - for _, v := range values { - if first { - first = false - m = v - } else { - if v < m { - m = v - } - } - } +// func minFloatMap(values map[string]float64) float64 { +// var m float64 +// first := true +// for _, v := range values { +// if first { +// first = false +// m = v +// } else { +// if v < m { +// m = v +// } +// } +// } - return m -} +// return m +// } // func maxNumeric(args ...interface{}) (interface{}, error) { // var m float64 diff --git a/pkg/obitax/lca.go b/pkg/obitax/lca.go index b3a6292..e621ce4 100644 --- a/pkg/obitax/lca.go +++ b/pkg/obitax/lca.go @@ -43,7 +43,7 @@ func (taxonomy *Taxonomy) TaxonomicDistribution(sequence *obiseq.BioSequence) ma t, et := taxonomy.Taxon(taxid) if et != nil { - log.Panicf("Taxid %d not defined in taxonomy : %v", k, et) + log.Panicf("Taxid %d not defined in taxonomy : %v", taxid, et) } taxons[t] = v }