554325746@qq.com
2019-08-22 43e52a52e24ad4fd00d351b21259b9a76affbaed
shm.go
@@ -14,6 +14,8 @@
type SHM struct {
   rw  *shm.ReadWriteCloser
   typ td
   data []byte
}
// Send impl interface Diliver
@@ -53,15 +55,11 @@
   ch := make(chan []byte)
   go func(){
      var body []byte
      data := make([]byte, maxRecvSize)
      n, err := s.rw.Read(data)
      n, err := s.rw.Read(s.data)
      if err == nil || err == io.EOF {
         body = make([]byte, n)
         copy(body, data)
         // data = data[:n:n]
         s.data = s.data[:n:n]
      }
      ch <- data
      ch <- s.data
   }()
   select{
   case d := <-ch:
@@ -125,6 +123,7 @@
      return &SHM{
         rw,
         agent,
         make([]byte, maxRecvSize),
      }, nil
   }
@@ -141,6 +140,7 @@
      return &SHM{
         rw,
         coactee,
         make([]byte, maxRecvSize),
      }, nil
   }
   return nil, err