Put a wait group in fileSystemServer.
parent
683decb008
commit
100c7af28a
|
@ -18,6 +18,7 @@ import (
|
||||||
"flag"
|
"flag"
|
||||||
"io"
|
"io"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/jacobsa/fuse"
|
"github.com/jacobsa/fuse"
|
||||||
|
@ -73,11 +74,14 @@ type FileSystem interface {
|
||||||
// cf. http://goo.gl/jnkHPO, fuse-devel thread "Fuse guarantees on concurrent
|
// cf. http://goo.gl/jnkHPO, fuse-devel thread "Fuse guarantees on concurrent
|
||||||
// requests").
|
// requests").
|
||||||
func NewFileSystemServer(fs FileSystem) fuse.Server {
|
func NewFileSystemServer(fs FileSystem) fuse.Server {
|
||||||
return fileSystemServer{fs}
|
return fileSystemServer{
|
||||||
|
fs: fs,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type fileSystemServer struct {
|
type fileSystemServer struct {
|
||||||
fs FileSystem
|
fs FileSystem
|
||||||
|
opsInFlight sync.WaitGroup
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s fileSystemServer) ServeOps(c *fuse.Connection) {
|
func (s fileSystemServer) ServeOps(c *fuse.Connection) {
|
||||||
|
@ -91,6 +95,7 @@ func (s fileSystemServer) ServeOps(c *fuse.Connection) {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s.opsInFlight.Add(1)
|
||||||
go s.handleOp(op)
|
go s.handleOp(op)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,4 +176,5 @@ func (s fileSystemServer) handleOp(op fuseops.Op) {
|
||||||
}
|
}
|
||||||
|
|
||||||
op.Respond(err)
|
op.Respond(err)
|
||||||
|
s.opsInFlight.Done()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue