diff --git a/test/end2end_test.go b/test/end2end_test.go
index d47af7ed..862261ef 100644
--- a/test/end2end_test.go
+++ b/test/end2end_test.go
@@ -1063,11 +1063,12 @@ func testExceedMaxStreamsLimit(t *testing.T, e env) {
 	done := make(chan struct{})
 	ch := make(chan int)
 	go func() {
+		timer := time.After(5 * time.Second)
 		for {
 			select {
 			case <-time.After(5 * time.Millisecond):
 				ch <- 0
-			case <-time.After(5 * time.Second):
+			case <-timer:
 				close(done)
 				return
 			}