• Tom Bergan's avatar
    http2: fix leak in activeRes by removing activeRes · e6a4aa30
    Tom Bergan authored
    AFAICT, activeRes serves no real purpose. It is used in just two ways:
    
    - To reduce the number of calls to closeIfIdle, which reduces the number
      of acquires of cc.mu when there are many concurrent streams. I dug
      through the CL history and could not find any benchmarks showing that
      this is necessary.
    
    - To avoid redundant calls to cs.bufPipe.CloseWithError(err) when a read
      loop is shutdown. This is unnecessary, since redundant CloseWithError
      calls are ignored.
    
    Since there isn't a good reason to have activeRes, the simplest way to
    fix the leak is to remove activeRes entirely.
    
    Updates golang/go#21543
    
    Change-Id: I1d1d2dc6c946425a2772c8bf71436707021ac269
    Reviewed-on: https://go-review.googlesource.com/80137Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    e6a4aa30
transport.go 62.8 KB