From b4e5181a2fdd1336856a67416600ad41c23e76f1 Mon Sep 17 00:00:00 2001 From: xtaci Date: Sat, 27 Aug 2016 09:00:35 +0800 Subject: [PATCH] optimize retry strategy --- client/main.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/client/main.go b/client/main.go index e0fa22e..1c76762 100644 --- a/client/main.go +++ b/client/main.go @@ -341,19 +341,23 @@ func main() { } checkError(err) idx := rr % numconn - mux := muxes[idx] - p2, err := mux.session.Open() + + OPEN_P2: + // do auto expiration + if autoexpire > 0 && time.Now().After(muxes[idx].ttl) { + log.Println("autoexpired") + muxes[idx].session = createConn() + muxes[idx].ttl = time.Now().Add(time.Duration(autoexpire) * time.Second) + } + + // do session open + p2, err := muxes[idx].session.Open() if err != nil { // yamux failure log.Println(err) p1.Close() muxes[idx].session = createConn() muxes[idx].ttl = time.Now().Add(time.Duration(autoexpire) * time.Second) - continue - } - if autoexpire > 0 && time.Now().After(muxes[idx].ttl) { // auto expiration - log.Println("autoexpired") - muxes[idx].session = createConn() - muxes[idx].ttl = time.Now().Add(time.Duration(autoexpire) * time.Second) + goto OPEN_P2 } go handleClient(p1, p2) rr++