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.
This commit is contained in:
Jakob Unterwurzacher 2015-11-29 19:06:11 +01:00
parent bb116282b7
commit 6f764b3867
2 changed files with 4 additions and 6 deletions

View File

@ -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.

View File

@ -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)
}