From 100c7af28ac0f34e23e3b765c159779404d4a25e Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Tue, 9 Jun 2015 10:47:35 +1000 Subject: [PATCH] Put a wait group in fileSystemServer. --- fuseutil/file_system.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fuseutil/file_system.go b/fuseutil/file_system.go index 511e0a7..40650a8 100644 --- a/fuseutil/file_system.go +++ b/fuseutil/file_system.go @@ -18,6 +18,7 @@ import ( "flag" "io" "math/rand" + "sync" "time" "github.com/jacobsa/fuse" @@ -73,11 +74,14 @@ type FileSystem interface { // cf. http://goo.gl/jnkHPO, fuse-devel thread "Fuse guarantees on concurrent // requests"). func NewFileSystemServer(fs FileSystem) fuse.Server { - return fileSystemServer{fs} + return fileSystemServer{ + fs: fs, + } } type fileSystemServer struct { - fs FileSystem + fs FileSystem + opsInFlight sync.WaitGroup } func (s fileSystemServer) ServeOps(c *fuse.Connection) { @@ -91,6 +95,7 @@ func (s fileSystemServer) ServeOps(c *fuse.Connection) { panic(err) } + s.opsInFlight.Add(1) go s.handleOp(op) } } @@ -171,4 +176,5 @@ func (s fileSystemServer) handleOp(op fuseops.Op) { } op.Respond(err) + s.opsInFlight.Done() }