0.5.0 release which dont have E2SM binding
[ric-plt/submgr.git] / pkg / xapptweaks / rmrwrapper.go
index ef633bd..09fa6de 100644 (file)
@@ -47,14 +47,16 @@ func (tc *RmrWrapper) Unlock() {
 func (tc *RmrWrapper) Init() {
 }
 
-func (tc *RmrWrapper) RmrSend(params *RMRParams) (err error) {
+func (tc *RmrWrapper) RmrSend(params *RMRParams, to time.Duration) (err error) {
        if tc.Rmr == nil {
                err = fmt.Errorf("Failed rmr object nil for %s", params.String())
                return
        }
-       status := false
-       i := 1
-       for ; i <= 10 && status == false; i++ {
+       tc.Lock()
+       status := tc.Rmr.Send(params.RMRParams, false)
+       tc.Unlock()
+       i := 0
+       for ; i < int(to)*2 && status == false; i++ {
                tc.Lock()
                status = tc.Rmr.Send(params.RMRParams, false)
                tc.Unlock()
@@ -64,7 +66,10 @@ func (tc *RmrWrapper) RmrSend(params *RMRParams) (err error) {
        }
        if status == false {
                err = fmt.Errorf("Failed with retries(%d) %s", i, params.String())
-               tc.Rmr.Free(params.Mbuf)
+               if params.Mbuf != nil {
+                       tc.Rmr.Free(params.Mbuf)
+                       params.Mbuf = nil
+               }
        } else {
                tc.CntSentMsg++
        }