派生自 libgowrapper/face

zhangmeng
2020-01-14 41a5fcf7fedf91ae9d01a12d18fbb098df8b4e54
run.go
@@ -13,7 +13,7 @@
   "basic.com/valib/gogpu.git"
)
const maxTryBeforeReboot = 30
const maxTryBeforeReboot = 10
type face struct {
   handle *SDKFace
@@ -59,6 +59,7 @@
            f.rebootUntil++
            f.fnLogger("Face No Running: ", f.rebootUntil)
            if f.rebootUntil > maxTryBeforeReboot {
               f.fnLogger("Face Too Long Running, Reboot")
               os.Exit(0)
            }
         }
@@ -156,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)
@@ -166,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)
@@ -186,7 +193,6 @@
//////////////////////////////////////////////////////////////////
const (
   cacheFrameNum   = 3
   trackChnTimeout = time.Duration(10)
)
@@ -219,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 {
@@ -239,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")