소스 검색

fasthttp: code prettifying

Aliaksandr Valialkin 10 년 전
부모
커밋
e39aa67fa9
1개의 변경된 파일49개의 추가작업 그리고 49개의 파일을 삭제
  1. 49 49
      frameworks/Go/fasthttp/src/hello/hello.go

+ 49 - 49
frameworks/Go/fasthttp/src/hello/hello.go

@@ -66,16 +66,8 @@ var (
 func main() {
 	flag.Parse()
 
-	var listener net.Listener
-	if !*prefork {
-		runtime.GOMAXPROCS(runtime.NumCPU())
-	} else {
-		listener = doPrefork()
-	}
-
 	var err error
-	db, err = sql.Open("mysql", connectionString)
-	if err != nil {
+	if db, err = sql.Open("mysql", connectionString); err != nil {
 		log.Fatalf("Error opening database: %s", err)
 	}
 	if err = db.Ping(); err != nil {
@@ -97,47 +89,10 @@ func main() {
 		Handler: mainHandler,
 		Name:    "fasthttp",
 	}
-	if !*prefork {
-		s.ListenAndServe(*listenAddr)
-	} else {
-		s.Serve(listener)
-	}
-}
-
-func mustPrepare(db *sql.DB, query string) *sql.Stmt {
-	stmt, err := db.Prepare(query)
-	if err != nil {
-		log.Fatalf("Error when preparing statement %q: %s", query, err)
-	}
-	return stmt
-}
-
-func doPrefork() net.Listener {
-	if !*child {
-		children := make([]*exec.Cmd, runtime.NumCPU())
-		for i := range children {
-			children[i] = exec.Command(os.Args[0], "-prefork", "-child")
-			children[i].Stdout = os.Stdout
-			children[i].Stderr = os.Stderr
-			if err := children[i].Start(); err != nil {
-				log.Fatal(err)
-			}
-		}
-		for _, ch := range children {
-			if err := ch.Wait(); err != nil {
-				log.Print(err)
-			}
-		}
-		os.Exit(0)
-		return nil
-	}
-
-	runtime.GOMAXPROCS(1)
-	listener, err := reuseport.Listen("tcp4", *listenAddr)
-	if err != nil {
-		log.Fatal(err)
+	ln := getListener()
+	if err = s.Serve(ln); err != nil {
+		log.Fatalf("Error when serving incoming connections: %s", err)
 	}
-	return listener
 }
 
 func mainHandler(ctx *fasthttp.RequestCtx) {
@@ -280,3 +235,48 @@ func (s Fortunes) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
 type ByMessage struct{ Fortunes }
 
 func (s ByMessage) Less(i, j int) bool { return s.Fortunes[i].Message < s.Fortunes[j].Message }
+
+func mustPrepare(db *sql.DB, query string) *sql.Stmt {
+	stmt, err := db.Prepare(query)
+	if err != nil {
+		log.Fatalf("Error when preparing statement %q: %s", query, err)
+	}
+	return stmt
+}
+
+func getListener() net.Listener {
+	if !*prefork {
+		runtime.GOMAXPROCS(runtime.NumCPU())
+		ln, err := net.Listen("tcp4", *listenAddr)
+		if err != nil {
+			log.Fatal(err)
+		}
+		return ln
+	}
+
+	if !*child {
+		children := make([]*exec.Cmd, runtime.NumCPU())
+		for i := range children {
+			children[i] = exec.Command(os.Args[0], "-prefork", "-child")
+			children[i].Stdout = os.Stdout
+			children[i].Stderr = os.Stderr
+			if err := children[i].Start(); err != nil {
+				log.Fatal(err)
+			}
+		}
+		for _, ch := range children {
+			if err := ch.Wait(); err != nil {
+				log.Print(err)
+			}
+		}
+		os.Exit(0)
+		panic("unreachable")
+	}
+
+	runtime.GOMAXPROCS(1)
+	ln, err := reuseport.Listen("tcp4", *listenAddr)
+	if err != nil {
+		log.Fatal(err)
+	}
+	return ln
+}