zhangmeng
2019-08-26 20a4c4bfb5b9ea427f9117408ff0e4513ebef9eb
use shm direct read
1个文件已修改
20 ■■■■■ 已修改文件
shm.go 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
shm.go
@@ -13,8 +13,6 @@
type SHM struct {
    rw  *shm.ReadWriteCloser
    typ td
    recvData []byte
}
// Send impl interface Diliver
@@ -38,16 +36,18 @@
        return nil, errors.New("please open shm consumer first")
    }
    if s.recvData == nil {
        s.recvData = make([]byte, maxRecvSize)
    }
    n, err := s.rw.Read(s.recvData)
    // data := make([]byte, maxRecvSize)
    // n, err := s.rw.Read(data)
    // if err == nil || err == io.EOF {
    //     data := make([]byte, maxRecvSize)
    //     copy(data, s.recvData)
    //     return data, nil
    // }
    data, err := s.rw.DirectRead()
    if err == nil || err == io.EOF {
        data := make([]byte, n)
        copy(data, s.recvData)
        return data, nil
    }
    return nil, err
}
@@ -95,7 +95,6 @@
        return &SHM{
            rw:       rw,
            typ:      agent,
            recvData: nil,
        }, nil
    }
@@ -112,7 +111,6 @@
        return &SHM{
            rw:       rw,
            typ:      coactee,
            recvData: nil,
        }, nil
    }
    return nil, err