53 lines
745 B
Go
53 lines
745 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math"
|
|
"os"
|
|
"runtime"
|
|
"sync"
|
|
)
|
|
|
|
const version = "v1.0.1"
|
|
|
|
const usage = "heat [-v|--verbose]"
|
|
|
|
func heat() {
|
|
var t float64 = math.MaxFloat64
|
|
for {
|
|
t /= 2.0
|
|
if t < math.SmallestNonzeroFloat32 {
|
|
t = math.MaxFloat64
|
|
}
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
if len(os.Args) > 1 {
|
|
if verbose(os.Args) {
|
|
fmt.Printf("heat version %v\n", version)
|
|
os.Exit(0)
|
|
} else {
|
|
fmt.Fprintf(os.Stderr, "usage: %v\n", usage)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
wg := sync.WaitGroup{}
|
|
wg.Add(1)
|
|
for i := 0; i < runtime.NumCPU(); i++ {
|
|
go heat()
|
|
}
|
|
wg.Wait()
|
|
}
|
|
|
|
func verbose(args []string) bool {
|
|
r := false
|
|
for _, arg := range args {
|
|
switch arg {
|
|
case "-v", "-version", "--version", "v", "version":
|
|
r = true
|
|
}
|
|
}
|
|
return r
|
|
}
|