lib9p

Go 9P library.
Log | Files | Refs | LICENSE

commit 733f573166960e0c54d769f6125b40f61f43a518
parent c6503a43e9ccee609918fd93bf973ea6075417e8
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Thu, 16 Nov 2023 08:44:27 +0900

update semfs

Diffstat:
Mcmd/semfs/fs.go | 30++++++++++++++++++++++--------
1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/cmd/semfs/fs.go b/cmd/semfs/fs.go @@ -59,6 +59,28 @@ func (fsys *semFS) Create(name string, uid string, mode lib9p.OpenMode, perm lib return newfile, nil } +func (fsys *semFS) Remove(name string) error { + var ( + f *semFile + path int + ) + for i, ff := range fsys.semfiles { + if ff.name == name { + f = ff + path = i + break + } + } + if f == nil { + return errors.New("not found") + } + f.cancel() + close(f.rchan) + close(f.wchan) + delete(fsys.semfiles, path) + return nil +} + func (root *semFS) Stat() (fs.FileInfo, error) { t := uint32(time.Now().Unix()) return &lib9p.FileInfo{Stat: lib9p.Stat{ @@ -173,11 +195,3 @@ func (f *semFile) Write(p []byte) (int, error) { f.wchan <- n return len(p), nil } - -func (f *semFile) Remove() error { - f.cancel() - close(f.rchan) - close(f.wchan) - delete(f.fs.semfiles, int(f.path)) - return nil -}