/
snakeserver.go
44 lines (39 loc) · 916 Bytes
/
snakeserver.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package main
import (
"flag"
//"github.com/kasworld/go4game"
"github.com/kasworld/go4game/snakebase"
"log"
"os"
"runtime/pprof"
"time"
)
func run_main() {
var rundur = flag.Int("rundur", 3, "run time sec")
var profilefilename = flag.String("pfilename", "", "profile filename")
var config = flag.String("config", "", "config filename")
flag.Parse()
log.Printf("rundur:%vs profile:%v config:%v",
*rundur, *profilefilename, *config)
if *config != "" {
ok := snakebase.SnakeDefault.Load(*config)
if !ok {
log.Fatal("config load fail")
}
}
if *profilefilename != "" {
f, err := os.Create(*profilefilename)
if err != nil {
log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
}
service := snakebase.NewService()
time.Sleep(time.Duration(*rundur) * time.Second)
service.SendGoCmd("quit", nil, nil)
time.Sleep(1 * time.Second)
}
func main() {
run_main()
}