VOL-4058 - TCONT allocation changes in ani configuration
Change-Id: If2e9c6b58ad62b5c1aa3b0771282058f2f2f5067
diff --git a/internal/pkg/onuadaptercore/onu_device_db.go b/internal/pkg/onuadaptercore/onu_device_db.go
index 7cc1cd4..46638e1 100644
--- a/internal/pkg/onuadaptercore/onu_device_db.go
+++ b/internal/pkg/onuadaptercore/onu_device_db.go
@@ -22,6 +22,7 @@
"fmt"
"reflect"
"sort"
+ "sync"
me "github.com/opencord/omci-lib-go/generated"
"github.com/opencord/voltha-lib-go/v4/pkg/log"
@@ -34,6 +35,7 @@
ctx context.Context
pOnuDeviceEntry *OnuDeviceEntry
meDb meDbMap
+ meDbLock sync.RWMutex
}
//newOnuDeviceDB returns a new instance for a specific ONU_Device_Entry
@@ -48,7 +50,8 @@
}
func (onuDeviceDB *onuDeviceDB) PutMe(ctx context.Context, meClassID me.ClassID, meEntityID uint16, meAttributes me.AttributeValueMap) {
-
+ onuDeviceDB.meDbLock.Lock()
+ defer onuDeviceDB.meDbLock.Unlock()
//filter out the OnuData
if me.OnuDataClassID == meClassID {
return
@@ -84,7 +87,8 @@
}
func (onuDeviceDB *onuDeviceDB) GetMe(meClassID me.ClassID, meEntityID uint16) me.AttributeValueMap {
-
+ onuDeviceDB.meDbLock.RLock()
+ defer onuDeviceDB.meDbLock.RUnlock()
if meAttributes, present := onuDeviceDB.meDb[meClassID][meEntityID]; present {
/* verbose logging, avoid in >= debug level
logger.Debugw(ctx,"ME found:", log.Fields{"meClassID": meClassID, "meEntityID": meEntityID, "meAttributes": meAttributes,
@@ -123,7 +127,8 @@
func (onuDeviceDB *onuDeviceDB) getSortedInstKeys(ctx context.Context, meClassID me.ClassID) []uint16 {
var meInstKeys []uint16
-
+ onuDeviceDB.meDbLock.RLock()
+ defer onuDeviceDB.meDbLock.RUnlock()
meInstMap := onuDeviceDB.meDb[meClassID]
for k := range meInstMap {