Skip to content

Commit 9382075

Browse files
committed
Moving main to the top and serializing the number of requests processed concurrently in the proxy
1 parent 08ea572 commit 9382075

File tree

1 file changed

+30
-26
lines changed

1 file changed

+30
-26
lines changed

main.go

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,36 @@ import (
2121
"github.com/julienschmidt/httprouter"
2222
)
2323

24+
func main() {
25+
const (
26+
defaultPort = "3000"
27+
defaultPortUsage = "default server port, '3000'"
28+
defaultTarget = "http://127.0.0.1:8080"
29+
defaultTargetUsage = "default redirect url, 'http://127.0.0.1:8080'"
30+
)
31+
32+
// flags
33+
port := flag.String("port", defaultPort, defaultPortUsage)
34+
redirectURL := flag.String("url", defaultTarget, defaultTargetUsage)
35+
yGen := flag.Uint64("ygen", 0, "Invalid young generation size.")
36+
tGen := flag.Uint64("tgen", 0, "Invalid tenured generation size.")
37+
flag.Parse()
38+
39+
if *yGen == 0 || *tGen == 0 {
40+
log.Fatalf("Neither ygen nor tgen can be 0. ygen:%d tgen:%d", *yGen, *tGen)
41+
}
42+
43+
proxy := newProxy(*redirectURL, *yGen, *tGen)
44+
c := make(chan struct{}, 1)
45+
router := httprouter.New()
46+
router.HandlerFunc("GET", "/", func(w http.ResponseWriter, r *http.Request) {
47+
c <- struct{}{}
48+
proxy.handle(w, r)
49+
<-c
50+
})
51+
log.Fatal(http.ListenAndServe(":"+*port, router))
52+
}
53+
2454
const (
2555
gciHeader = "gci"
2656
heapCheckHeader = "ch"
@@ -205,32 +235,6 @@ func newTransport(target string, yGen, tGen uint64) *transport {
205235
}
206236
}
207237

208-
func main() {
209-
const (
210-
defaultPort = "3000"
211-
defaultPortUsage = "default server port, '3000'"
212-
defaultTarget = "http://127.0.0.1:8080"
213-
defaultTargetUsage = "default redirect url, 'http://127.0.0.1:8080'"
214-
)
215-
216-
// flags
217-
port := flag.String("port", defaultPort, defaultPortUsage)
218-
redirectURL := flag.String("url", defaultTarget, defaultTargetUsage)
219-
yGen := flag.Uint64("ygen", 0, "Invalid young generation size.")
220-
tGen := flag.Uint64("tgen", 0, "Invalid tenured generation size.")
221-
flag.Parse()
222-
223-
if *yGen == 0 || *tGen == 0 {
224-
log.Fatalf("Neither ygen nor tgen can be 0. ygen:%d tgen:%d", *yGen, *tGen)
225-
}
226-
227-
proxy := newProxy(*redirectURL, *yGen, *tGen)
228-
229-
router := httprouter.New()
230-
router.HandlerFunc("GET", "/", proxy.handle)
231-
log.Fatal(http.ListenAndServe(":"+*port, router))
232-
}
233-
234238
////////// SHEDDING THRESHOLD
235239
const (
236240
// We currently have room for increase/decrease the entropy three times in a row.

0 commit comments

Comments
 (0)