|
|
@@ -5,6 +5,7 @@ import (
|
|
|
"fmt"
|
|
|
"log"
|
|
|
"os"
|
|
|
+ "runtime"
|
|
|
)
|
|
|
|
|
|
func (solver *Solver) parse_flags() {
|
|
|
@@ -30,10 +31,21 @@ func (solver *Solver) parse_flags() {
|
|
|
flag.StringVar(&row7, "row7", "000000000", "7th row of the sudoku puzzle.")
|
|
|
flag.StringVar(&row8, "row8", "000000000", "8th row of the sudoku puzzle.")
|
|
|
flag.StringVar(&row9, "row9", "000000000", "9th row of the sudoku puzzle.")
|
|
|
+ flag.IntVar(&solver.numcpus, "numcpu", runtime.NumCPU(), "Number of CPU cores to assign to this task.")
|
|
|
|
|
|
// Parse the flags
|
|
|
flag.Parse()
|
|
|
|
|
|
+ if solver.numcpus <= 0 {
|
|
|
+ log.Printf("ERROR: Number of CPU cores must be 1 or higher.\n\n")
|
|
|
+ solver.print_Usage()
|
|
|
+ os.Exit(1)
|
|
|
+ }
|
|
|
+
|
|
|
+ if solver.numcpus != runtime.NumCPU() {
|
|
|
+ runtime.GOMAXPROCS(solver.numcpus)
|
|
|
+ }
|
|
|
+
|
|
|
if row1 == "000000000" || row2 == "000000000" || row3 == "000000000" || row4 == "000000000" || row5 == "000000000" || row6 == "000000000" || row7 == "000000000" || row8 == "000000000" || row9 == "000000000" {
|
|
|
log.Printf("ERROR: All parameters must be entered.\n\n")
|
|
|
solver.print_Usage()
|