|
@@ -5,7 +5,6 @@ import (
|
|
"flag"
|
|
"flag"
|
|
"log"
|
|
"log"
|
|
"runtime"
|
|
"runtime"
|
|
- "sort"
|
|
|
|
|
|
|
|
_ "github.com/go-sql-driver/mysql"
|
|
_ "github.com/go-sql-driver/mysql"
|
|
"github.com/valyala/fasthttp"
|
|
"github.com/valyala/fasthttp"
|
|
@@ -94,9 +93,9 @@ func fortuneHandler(ctx *fasthttp.RequestCtx) {
|
|
log.Fatalf("Error selecting db data: %v", err)
|
|
log.Fatalf("Error selecting db data: %v", err)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ var f templates.Fortune
|
|
fortunes := make([]templates.Fortune, 0, 16)
|
|
fortunes := make([]templates.Fortune, 0, 16)
|
|
for rows.Next() {
|
|
for rows.Next() {
|
|
- var f templates.Fortune
|
|
|
|
if err := rows.Scan(&f.ID, &f.Message); err != nil {
|
|
if err := rows.Scan(&f.ID, &f.Message); err != nil {
|
|
log.Fatalf("Error scanning fortune row: %s", err)
|
|
log.Fatalf("Error scanning fortune row: %s", err)
|
|
}
|
|
}
|
|
@@ -105,7 +104,7 @@ func fortuneHandler(ctx *fasthttp.RequestCtx) {
|
|
rows.Close()
|
|
rows.Close()
|
|
fortunes = append(fortunes, templates.Fortune{Message: "Additional fortune added at request time."})
|
|
fortunes = append(fortunes, templates.Fortune{Message: "Additional fortune added at request time."})
|
|
|
|
|
|
- sort.Sort(common.FortunesByMessage(fortunes))
|
|
|
|
|
|
+ common.SortFortunesByMessage(fortunes)
|
|
|
|
|
|
ctx.SetContentType("text/html; charset=utf-8")
|
|
ctx.SetContentType("text/html; charset=utf-8")
|
|
templates.WriteFortunePage(ctx, fortunes)
|
|
templates.WriteFortunePage(ctx, fortunes)
|
|
@@ -122,7 +121,8 @@ func updateHandler(ctx *fasthttp.RequestCtx) {
|
|
}
|
|
}
|
|
|
|
|
|
// sorting is required for insert deadlock prevention.
|
|
// sorting is required for insert deadlock prevention.
|
|
- sort.Sort(common.WorldsByID(worlds))
|
|
|
|
|
|
+ common.SortWorldsByID(worlds)
|
|
|
|
+
|
|
txn, err := db.Begin()
|
|
txn, err := db.Begin()
|
|
if err != nil {
|
|
if err != nil {
|
|
log.Fatalf("Error starting transaction: %s", err)
|
|
log.Fatalf("Error starting transaction: %s", err)
|