Skip to content

Commit

Permalink
Use sync.Once to ensure mqInqLength is initialized once
Browse files Browse the repository at this point in the history
  • Loading branch information
kalmant committed Nov 3, 2023
1 parent 3220b2d commit 2fdc741
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions ibmmq/mqiattrs.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ import "C"
import (
"fmt"
"os"
"sync"
)

/*
Expand Down Expand Up @@ -130,7 +131,7 @@ var mqInqLength = map[int32]int32{
C.MQCA_XMIT_Q_NAME: C.MQ_Q_NAME_LENGTH,
}

var charAttrsAdded = false
var charAttrsAddedOnce sync.Once

/*
* Return how many char & int attributes are in the list of selectors, and the
Expand All @@ -141,7 +142,7 @@ func getAttrInfo(attrs []int32) (int, int, int) {
var charAttrCount = 0
var intAttrCount = 0

if !charAttrsAdded {
charAttrsAddedOnce.Do(func() {
maxNewAttrs := C.MAX_NEW_MQCA_ATTRS
attrVals := make([]C.MQLONG, maxNewAttrs)
attrLens := make([]C.MQLONG, maxNewAttrs)
Expand All @@ -155,8 +156,7 @@ func getAttrInfo(attrs []int32) (int, int, int) {
for i := 0; i < addedAttrs; i++ {
mqInqLength[int32(attrVals[i])] = int32(attrLens[i])
}
charAttrsAdded = true
}
})

for i := 0; i < len(attrs); i++ {
if v, ok := mqInqLength[attrs[i]]; ok {
Expand Down

0 comments on commit 2fdc741

Please sign in to comment.