reid from https://github.com/michuanhaohao/reid-strong-baseline
zhangmeng
2020-02-24 d9b98e947f7b5aae886ff02ec27bd92aa34feaaa
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)
}