diff options
author | Jakob Unterwurzacher | 2015-11-29 19:06:11 +0100 |
---|---|---|
committer | Jakob Unterwurzacher | 2015-11-29 19:09:12 +0100 |
commit | 6f764b386786b92023fa696594105f702226b3ff (patch) | |
tree | cf927b67da800821c464bb144dfa1b102f55557b /main.go | |
parent | bb116282b7db6a6400586d756c6dfdcc8f85fdab (diff) |
Handle all operations except mounting without forking a child
This saves 170ms for each start (why do we take 170ms to start up?)
and cuts down test time by 2 seconds.
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 9 |
1 files changed, 3 insertions, 6 deletions
@@ -155,13 +155,10 @@ func main() { "Setting this to a lower value speeds up mounting but makes the password susceptible to brute-force attacks") flagSet.Parse(os.Args[1:]) - // By default, let the child handle everything. - // The parent *could* handle operations that do not require backgrounding by - // itself, but that would make the code paths more complicated. - if !args.foreground { + // Fork a child into the background if "-f" is not set and we are mounting a filesystem + if !args.foreground && flagSet.NArg() == 2 { forkChild() // does not return } - // Getting here means we *are* the child // "-v" if args.version { printVersion() @@ -231,7 +228,7 @@ func main() { } // Mount // Check mountpoint - if flagSet.NArg() < 2 { + if flagSet.NArg() != 2 { usageText() os.Exit(ERREXIT_USAGE) } |