X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=js.go;h=a984669198d935c2796c04f4e1c2f45f57e078ae;hb=3ad09b01e78cc63612629e435bce6506e05d9253;hp=ccc9fe1d1ab1a9ecaa4f4a202804af09e3dbbde6;hpb=634ee31ae35a2eaac517e0ffa1b7caede4b27ac5;p=goredo.git diff --git a/js.go b/js.go index ccc9fe1..a984669 100644 --- a/js.go +++ b/js.go @@ -1,6 +1,6 @@ /* goredo -- redo implementation on pure Go -Copyright (C) 2020 Sergey Matveev +Copyright (C) 2020-2021 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,6 +21,7 @@ package main import ( "flag" + "fmt" "log" "os" "os/signal" @@ -41,7 +42,7 @@ var ( jsTokens int jsTokensM sync.Mutex - flagJobs = flag.Uint64("j", 1, "number of parallel jobs (0=inf) (REDO_JOBS)") + flagJobs = flag.Int("j", -1, fmt.Sprintf("number of parallel jobs (0=inf, <0=1) (%s)", EnvJobs)) ) func jsInit() { @@ -72,22 +73,23 @@ func jsInit() { return } - var jobs uint64 - if v := os.Getenv(EnvJobs); v != "" { - var err error + jobs := uint64(1) + var err error + if *flagJobs == 0 { + jobs = 0 + } else if *flagJobs > 0 { + jobs = uint64(*flagJobs) + } else if v := os.Getenv(EnvJobs); v != "" { jobs, err = strconv.ParseUint(v, 10, 64) if err != nil { log.Fatalln("can not parse", EnvJobs, err) } - } else { - jobs = *flagJobs } if jobs == 0 { // infinite jobs return } - var err error JSR, JSW, err = os.Pipe() if err != nil { panic(err)