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