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 | |
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.
-rw-r--r-- | TODO.md | 1 | ||||
-rw-r--r-- | main.go | 9 |
2 files changed, 4 insertions, 6 deletions
@@ -3,3 +3,4 @@ * add test case * Add "--pwfile" parameter that reads the password from a file * Use that for additional test cases +* Find out why "./gocryptfs -version" takes 170ms. @@ -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) } |