diff options
Diffstat (limited to 'contrib/getdents-debug/getdents/getdents.go')
-rw-r--r-- | contrib/getdents-debug/getdents/getdents.go | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/contrib/getdents-debug/getdents/getdents.go b/contrib/getdents-debug/getdents/getdents.go index cd1e49d..d7dac78 100644 --- a/contrib/getdents-debug/getdents/getdents.go +++ b/contrib/getdents-debug/getdents/getdents.go @@ -40,6 +40,7 @@ import ( "flag" "fmt" "os" + "time" "golang.org/x/sys/unix" ) @@ -50,11 +51,10 @@ const ( func main() { flag.Usage = func() { - fmt.Fprintf(os.Stderr, "Usage: %s [-loop] PATH\n", myName) - fmt.Fprintf(os.Stderr, "Run getdents(2) on PATH\n") + fmt.Fprintf(os.Stderr, "Usage: %s PATH\n", myName) + fmt.Fprintf(os.Stderr, "Run getdents(2) on PATH in a 100ms loop until we hit an error\n") os.Exit(1) } - loop := flag.Bool("loop", false, "Run in a loop") flag.Parse() if flag.NArg() != 1 { flag.Usage() @@ -62,14 +62,14 @@ func main() { path := flag.Arg(0) tmp := make([]byte, 10000) - for { + for i := 1; ; i++ { sum := 0 fd, err := unix.Open(path, unix.O_RDONLY, 0) if err != nil { - fmt.Printf("unix.Open returned err=%v\n", err) - continue + fmt.Printf("%3d: unix.Open returned err=%v\n", err) + os.Exit(1) } - fmt.Printf("unix.Getdents: ") + fmt.Printf("%3d: unix.Getdents: ", i) for { n, err := unix.Getdents(fd, tmp) fmt.Printf("n=%d; ", n) @@ -83,8 +83,6 @@ func main() { sum += n } unix.Close(fd) - if !*loop { - break - } + time.Sleep(100 * time.Millisecond) } } |