commit 1f3935ea80fa09e85f9a8d5deadbd8c94d93e67b
parent 418ddacedb1be0d07bb58845af2c5594a0dcaea0
Author: Matsuda Kenji <info@mtkn.jp>
Date: Tue, 9 Jan 2024 19:06:18 +0900
replace errc with done channel
Diffstat:
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/server.go b/server.go
@@ -838,8 +838,9 @@ func sWrite(ctx context.Context, c *conn, rc <-chan *request) {
}
var (
ofcall *RWrite
- errc chan error
+ done chan struct{}
omode OpenMode
+ err error
)
ifcall := r.ifcall.(*TWrite)
r.fid, ok = c.fPool.lookup(ifcall.Fid)
@@ -856,31 +857,30 @@ func sWrite(ctx context.Context, c *conn, rc <-chan *request) {
goto resp
}
ofcall = new(RWrite)
- errc = make(chan error)
+ done = make(chan struct{})
go func() {
- defer close(errc)
+ defer close(done)
+ var n int
switch file := r.fid.file.(type) {
case io.WriterAt:
- n, err := file.WriteAt(ifcall.Data, int64(ifcall.Offset))
+ n, err = file.WriteAt(ifcall.Data, int64(ifcall.Offset))
if err != nil {
- errc <- fmt.Errorf("write: %v", err)
return
}
ofcall.Count = uint32(n)
case io.Writer:
- n, err := file.Write(ifcall.Data)
+ n, err = file.Write(ifcall.Data)
if err != nil {
- errc <- fmt.Errorf("write: %v", err)
return
}
ofcall.Count = uint32(n)
default:
- errc <- ErrOperation
+ err = ErrOperation
return
}
}()
select {
- case err := <-errc:
+ case <-done:
if err != nil {
r.err = err
goto resp