From d9b98e947f7b5aae886ff02ec27bd92aa34feaaa Mon Sep 17 00:00:00 2001
From: zhangmeng <zhangmeng@aiotlink.com>
Date: 星期一, 24 二月 2020 18:06:43 +0800
Subject: [PATCH] debug send/recv and add logs

---
 rpc/recv.go |   41 ++++++++++++++++++++++++++---------------
 1 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/rpc/recv.go b/rpc/recv.go
index f2bfc60..aced578 100644
--- a/rpc/recv.go
+++ b/rpc/recv.go
@@ -8,8 +8,6 @@
 	"basic.com/valib/deliver.git"
 )
 
-const mode = deliver.PushPull
-
 // Reciever recv from ipc
 type Reciever struct {
 	ctx    context.Context
@@ -36,7 +34,7 @@
 	if r.shm {
 		r.runShm(ctx)
 	} else {
-		r.run(ctx, deliver.NewClient(mode, r.ipcURL))
+		r.run(ctx, deliver.NewServer(deliver.PushPull, r.ipcURL))
 	}
 }
 
@@ -54,19 +52,25 @@
 			if r.shm {
 				if d, err := i.Recv(); err != nil {
 					i.Close()
-					r.fnLogger("Reciever RECV ERROR: ", err)
+					r.fnLogger("Reciever RECV From:", r.ipcURL, " ERROR: ", err)
 
 					c, err := deliver.NewServerWithError(deliver.Shm, r.ipcURL)
+				loopR:
 					for {
-						if err == nil {
-							break
+						select {
+						case <-ctx.Done():
+							return
+						default:
+							if err == nil {
+								break loopR
+							}
+							time.Sleep(time.Second)
+							c, err = deliver.NewServerWithError(deliver.Shm, r.ipcURL)
+							r.fnLogger("Recver ANALYSIS CREATE:", r.ipcURL, "  FAILED : ", err)
 						}
-						r.fnLogger("Reciever CREATE FAILED : ", err)
-						time.Sleep(time.Second)
-						c, err = deliver.NewServerWithError(deliver.Shm, r.ipcURL)
 					}
 					i = c
-					r.fnLogger("Reciever CREATE SHM")
+					r.fnLogger("Reciever CREATE SHM:", r.ipcURL)
 				} else {
 					if d != nil {
 						count++
@@ -100,13 +104,20 @@
 
 func (r *Reciever) runShm(ctx context.Context) {
 	c, err := deliver.NewServerWithError(deliver.Shm, r.ipcURL)
+loopRBegin:
 	for {
-		if err == nil {
-			break
+		select {
+		case <-ctx.Done():
+			return
+		default:
+			if err == nil {
+				break loopRBegin
+			}
+			time.Sleep(1 * time.Second)
+			c, err = deliver.NewServerWithError(deliver.Shm, r.ipcURL)
+			r.fnLogger("Recver CLIENT CREATE", r.ipcURL, "FAILED : ", err)
 		}
-		r.fnLogger("Reciever CLIENT CREATE FAILED : ", err)
-		time.Sleep(1 * time.Second)
-		c, err = deliver.NewServerWithError(deliver.Shm, r.ipcURL)
 	}
+
 	r.run(ctx, c)
 }

--
Gitblit v1.8.0