Browse Source

Merge fanout commit

Patrick Falls 12 years ago
parent
commit
0512c33eef
2 changed files with 23 additions and 54 deletions
  1. 10 23
      go/src/hello/hello.go
  2. 13 31
      revel/src/benchmark/app/controllers/app.go

+ 10 - 23
go/src/hello/hello.go

@@ -10,7 +10,6 @@ import (
 	"runtime"
 	"sort"
 	"strconv"
-	"sync"
 
 	_ "github.com/go-sql-driver/mysql"
 )
@@ -99,18 +98,12 @@ func worldHandler(w http.ResponseWriter, r *http.Request) {
 			log.Fatalf("Error scanning world row: %v", err)
 		}
 	} else {
-		var wg sync.WaitGroup
-		wg.Add(n)
 		for i := 0; i < n; i++ {
-			go func(i int) {
-				err := worldStatement.QueryRow(rand.Intn(WorldRowCount)+1).Scan(&ww[i].Id, &ww[i].RandomNumber)
-				if err != nil {
-					log.Fatalf("Error scanning world row: %v", err)
-				}
-				wg.Done()
-			}(i)
+			err := worldStatement.QueryRow(rand.Intn(WorldRowCount)+1).Scan(&ww[i].Id, &ww[i].RandomNumber)
+			if err != nil {
+				log.Fatalf("Error scanning world row: %v", err)
+			}
 		}
-		wg.Wait()
 	}
 	w.Header().Set("Content-Type", "application/json")
 	json.NewEncoder(w).Encode(ww)
@@ -150,20 +143,14 @@ func updateHandler(w http.ResponseWriter, r *http.Request) {
 		ww[0].RandomNumber = uint16(rand.Intn(WorldRowCount) + 1)
 		updateStatement.Exec(ww[0].RandomNumber, ww[0].Id)
 	} else {
-		var wg sync.WaitGroup
-		wg.Add(n)
 		for i := 0; i < n; i++ {
-			go func(i int) {
-				err := worldStatement.QueryRow(rand.Intn(WorldRowCount)+1).Scan(&ww[i].Id, &ww[i].RandomNumber)
-				ww[i].RandomNumber = uint16(rand.Intn(WorldRowCount) + 1)
-				updateStatement.Exec(ww[i].RandomNumber, ww[i].Id)
-				if err != nil {
-					log.Fatalf("Error scanning world row: %v", err)
-				}
-				wg.Done()
-			}(i)
+			err := worldStatement.QueryRow(rand.Intn(WorldRowCount)+1).Scan(&ww[i].Id, &ww[i].RandomNumber)
+			ww[i].RandomNumber = uint16(rand.Intn(WorldRowCount) + 1)
+			updateStatement.Exec(ww[i].RandomNumber, ww[i].Id)
+			if err != nil {
+				log.Fatalf("Error scanning world row: %v", err)
+			}
 		}
-		wg.Wait()
 	}
 	j, _ := json.Marshal(ww)
 	w.Header().Set("Content-Type", "application/json")

+ 13 - 31
revel/src/benchmark/app/controllers/app.go

@@ -7,7 +7,6 @@ import (
 	"math/rand"
 	"runtime"
 	"sort"
-	"sync"
 )
 
 type MessageStruct struct {
@@ -86,19 +85,13 @@ func (c App) Db(queries int) revel.Result {
 	}
 
 	ww := make([]World, queries)
-	var wg sync.WaitGroup
-	wg.Add(queries)
 	for i := 0; i < queries; i++ {
-		go func(i int) {
-			err := worldStatement.QueryRow(rand.Intn(WorldRowCount)+1).
-				Scan(&ww[i].Id, &ww[i].RandomNumber)
-			if err != nil {
-				revel.ERROR.Fatalf("Error scanning world row: %v", err)
-			}
-			wg.Done()
-		}(i)
+		err := worldStatement.QueryRow(rand.Intn(WorldRowCount)+1).
+			Scan(&ww[i].Id, &ww[i].RandomNumber)
+		if err != nil {
+			revel.ERROR.Fatalf("Error scanning world row: %v", err)
+		}
 	}
-	wg.Wait()
 	return c.RenderJson(ww)
 }
 
@@ -118,27 +111,16 @@ func (c App) Update(queries int) revel.Result {
 		return c.RenderJson(&w)
 	}
 
-	var (
-		ww = make([]World, queries)
-		wg sync.WaitGroup
-	)
-	wg.Add(queries)
+	ww := make([]World, queries)
 	for i := 0; i < queries; i++ {
-		go func(i int) {
-			err := worldStatement.QueryRow(rand.Intn(WorldRowCount)+1).
-				Scan(&ww[i].Id, &ww[i].RandomNumber)
-			if err != nil {
-				revel.ERROR.Fatalf("Error scanning world row: %v", err)
-			}
-			ww[i].RandomNumber = uint16(rand.Intn(WorldRowCount) + 1)
-			_, err = updateStatement.Exec(ww[i].RandomNumber, ww[i].Id)
-			if err != nil {
-				revel.ERROR.Fatalf("Error updating world row: %v", err)
-			}
-			wg.Done()
-		}(i)
+		err := worldStatement.QueryRow(rand.Intn(WorldRowCount)+1).
+			Scan(&ww[i].Id, &ww[i].RandomNumber)
+		if err != nil {
+			revel.ERROR.Fatalf("Error scanning world row: %v", err)
+		}
+		ww[i].RandomNumber = uint16(rand.Intn(WorldRowCount) + 1)
+		updateStatement.Exec(ww[i].RandomNumber, ww[i].Id)
 	}
-	wg.Wait()
 	return c.RenderJson(ww)
 }