From 41a5fcf7fedf91ae9d01a12d18fbb098df8b4e54 Mon Sep 17 00:00:00 2001
From: zhangmeng <zhangmeng@aiotlink.com>
Date: 星期二, 14 一月 2020 17:29:38 +0800
Subject: [PATCH] add chan cache size

---
 run.go |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/run.go b/run.go
index a80af01..353c8ab 100644
--- a/run.go
+++ b/run.go
@@ -157,6 +157,12 @@
 	}
 }
 
+func (f *face) release() {
+	if f.handle != nil {
+		f.handle.Free()
+	}
+}
+
 // Run run
 func Run(ctx context.Context, i interface{}) {
 	s := i.(*face)
@@ -167,8 +173,8 @@
 	)
 	ipcRcv := sdkhelper.GetIpcAddress(s.shm, s.id+postPull)
 	ipcSnd := sdkhelper.GetIpcAddress(s.shm, s.id+postPush)
-	chRcv := make(chan []byte)
-	chSnd := make(chan sdkstruct.MsgSDK)
+	chRcv := make(chan []byte, s.maxChannel)
+	chSnd := make(chan sdkstruct.MsgSDK, s.maxChannel)
 
 	rcver := sdkhelper.NewReciever(ipcRcv, chRcv, s.shm, s.fnLogger)
 	snder := sdkhelper.NewSender(ipcSnd, chSnd, s.shm, s.fnLogger)
@@ -187,7 +193,6 @@
 
 //////////////////////////////////////////////////////////////////
 const (
-	cacheFrameNum   = 3
 	trackChnTimeout = time.Duration(10)
 )
 
@@ -220,7 +225,7 @@
 
 func (f *face) run(ctx context.Context, in <-chan []byte, out chan<- sdkstruct.MsgSDK) {
 
-	chMsg := make(chan protomsg.SdkMessage)
+	chMsg := make(chan protomsg.SdkMessage, f.maxChannel)
 	go sdkhelper.UnserilizeProto(ctx, in, chMsg, f.fnLogger)
 
 	for {
@@ -240,7 +245,7 @@
 				f.ftrackChans[rMsg.Cid] <- rMsg
 			} else {
 
-				f.ftrackChans[rMsg.Cid] = make(chan protomsg.SdkMessage, cacheFrameNum)
+				f.ftrackChans[rMsg.Cid] = make(chan protomsg.SdkMessage, f.maxChannel)
 				chn := f.getAvailableChn()
 				if chn < 0 {
 					f.fnLogger("TOO MUCH CHANNEL")

--
Gitblit v1.8.0