554325746@qq.com
2019-08-22 074c0c376a7b6c91bad7c45e050270a4a6856b6d
shm.go
@@ -1,6 +1,7 @@
package deliver
import (
   "bytes"
   "errors"
   "fmt"
   "io"
@@ -12,10 +13,8 @@
// SHM share memory
type SHM struct {
   rw  *shm.ReadWriteCloser
   typ td
   data []byte
   rw     *shm.ReadWriteCloser
   typ    td
}
// Send impl interface Diliver
@@ -55,14 +54,12 @@
   ch := make(chan []byte)
   go func(){
      var data []byte
      n, err := s.rw.Read(s.data)
      buffer := new(bytes.Buffer)
      _, err := s.rw.WriteTo(buffer)
      if err == nil || err == io.EOF {
         data = make([]byte, n)
         copy(data, s.data)
         // s.data = s.data[:n:n]
         ch <- buffer.Bytes()
      }
      ch <- s.data
      ch <- nil
   }()
   select{
   case d := <-ch:
@@ -126,7 +123,6 @@
      return &SHM{
         rw,
         agent,
         make([]byte, maxRecvSize),
      }, nil
   }
@@ -143,7 +139,6 @@
      return &SHM{
         rw,
         coactee,
         make([]byte, maxRecvSize),
      }, nil
   }
   return nil, err