zhangmeng
2019-08-30 47adbbbb6651527a7cf7416702d66fa7ddf5c2a9
shm.go
@@ -4,9 +4,7 @@
   "errors"
   "fmt"
   "io"
   "reflect"
   "time"
   "unsafe"
   "basic.com/valib/shm.git"
)
@@ -16,7 +14,7 @@
   rw  *shm.ReadWriteCloser
   typ td
   recvData []byte
   // recvData []byte
}
// Send impl interface Diliver
@@ -51,25 +49,25 @@
   // cur
   // data, err := s.rw.DirectRead()
   // if err == nil || err == io.EOF {
   //    return data, nil
   // }
   data, err := s.rw.DirectRead()
   if err == nil || err == io.EOF {
      return data, nil
   }
   // new
   if s.recvData == nil {
      s.recvData = make([]byte, maxRecvSize)
   }
   sliceHeader := (*reflect.SliceHeader)(unsafe.Pointer(&s.recvData))
   // sliceHeader.Cap = maxRecvSize
   sliceHeader.Len = maxRecvSize
   // if s.recvData == nil {
   //    s.recvData = make([]byte, maxRecvSize)
   // }
   // sliceHeader := (*reflect.SliceHeader)(unsafe.Pointer(&s.recvData))
   // // sliceHeader.Cap = maxRecvSize
   // sliceHeader.Len = maxRecvSize
   n, err := s.rw.Read(s.recvData)
   if err == nil || err == io.EOF {
      sliceHeader.Len = n
      return s.recvData, nil
   }
   // n, err := s.rw.Read(s.recvData)
   // if err == nil || err == io.EOF {
   //    sliceHeader.Len = n
   //    return s.recvData, nil
   // }
   return nil, err
}