[VOL-2895] : Pings fail intermittently after OLT reboot and ONU disable

- There was a possible data corruption due to lock not being applied
  over the entire routine where a new FlowID was being allocated.
  There could be similar corruptions for other PON resource allocations
  as well, so the locks are applied over entire routine where PON resources
  are being managed. This comes at a slightly increased cost of end-to-end
  flow handling transaction time when there are many susbcriber, but
  guarantees sanity of data.

Change-Id: I0644aab4ffd6a636ea9eadccea13e2ed1ccb5d7b
diff --git a/internal/pkg/core/openolt_flowmgr.go b/internal/pkg/core/openolt_flowmgr.go
index b8875e7..11d63d5 100644
--- a/internal/pkg/core/openolt_flowmgr.go
+++ b/internal/pkg/core/openolt_flowmgr.go
@@ -254,7 +254,7 @@
 	}
 	flowMgr.lockCache = sync.RWMutex{}
 	flowMgr.pendingFlowDelete = sync.Map{}
-	flowMgr.perUserFlowHandleLock = mapmutex.NewMapMutex()
+	flowMgr.perUserFlowHandleLock = mapmutex.NewCustomizedMapMutex(300, 100000000, 10000000, 1.1, 0.2)
 	flowMgr.interfaceToMcastQueueMap = make(map[uint32]*queueInfoBrief)
 	//load interface to multicast queue map from kv store
 	flowMgr.loadInterfaceToMulticastQueueMap(ctx)