lib9p

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

commit 1951910a2e7788c7a3d2fe2732f5e4df9c9698fc
parent edf77a3c3815a962d7f3801063ba10d3d48f8f7b
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Fri, 22 Dec 2023 14:38:52 +0900

add goroutine count for debugging

Diffstat:
Mcmd/diskfs/main.go | 11+++++++++++
Mserver.go | 3+++
2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/cmd/diskfs/main.go b/cmd/diskfs/main.go @@ -13,7 +13,9 @@ import ( _ "net/http/pprof" "os" "os/signal" + "runtime" "sync" + "time" "git.mtkn.jp/lib9p" "git.mtkn.jp/lib9p/diskfs" @@ -22,6 +24,7 @@ import ( var dFlag = flag.Bool("D", false, "Prints chatty message to the stderr.") var aFlag = flag.String("a", "127.0.0.1", "Address the server listens to.") var pFlag = flag.Int("p", 5640, "Port number the server listens to.") +var gFlag = flag.Bool("g", false, "Prints goroutin count once per second.") func main() { go func() { @@ -32,6 +35,14 @@ func main() { fmt.Fprintf(os.Stderr, "usage: %s [-D] [-a <addr>] [-p <port>] <root>\n", os.Args[0]) os.Exit(1) } + if *gFlag { + go func() { + for { + log.Printf("num goroutine: %d", runtime.NumGoroutine()) + time.Sleep(1 * time.Second) + } + }() + } listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", *aFlag, *pFlag)) if err != nil { log.Fatalf("listen tcp: %v", err) diff --git a/server.go b/server.go @@ -413,6 +413,9 @@ func rFlush(ctx context.Context, c <-chan *Req) { case <-ctx.Done(): return case r := <-c: + if r == nil { + return + } if r.err != nil { panic(fmt.Errorf("err in flush: %v", r.err)) }