FUSE-T reuses file handles and issues multiple concurrent reads
type fileHandle struct {
fn fileNode
type fileHandle struct {
fn fileNode
if req.Dir {
panic("read on directory")
}
if req.Dir {
panic("read on directory")
}
+ r := me.tf.NewReader()
+ defer r.Close()
pos, err := r.Seek(req.Offset, io.SeekStart)
if err != nil {
panic(err)
pos, err := r.Seek(req.Offset, io.SeekStart)
if err != nil {
panic(err)
}
func (me fileHandle) Release(context.Context, *fuse.ReleaseRequest) error {
}
func (me fileHandle) Release(context.Context, *fuse.ReleaseRequest) error {
}
func (fn fileNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fusefs.Handle, error) {
}
func (fn fileNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fusefs.Handle, error) {
- r := fn.f.NewReader()
- return fileHandle{fn, r}, nil
+ return fileHandle{fn, fn.f}, nil