@@ -766,6 +766,10 @@ func (t *http2Server) WriteHeader(s *Stream, md metadata.MD) error {
766
766
return nil
767
767
}
768
768
769
+ func (t * http2Server ) setResetPingStrikes () {
770
+ atomic .StoreUint32 (& t .resetPingStrikes , 1 )
771
+ }
772
+
769
773
func (t * http2Server ) writeHeaderLocked (s * Stream ) error {
770
774
// TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields
771
775
// first and create a slice of that exact size.
@@ -780,9 +784,7 @@ func (t *http2Server) writeHeaderLocked(s *Stream) error {
780
784
streamID : s .id ,
781
785
hf : headerFields ,
782
786
endStream : false ,
783
- onWrite : func () {
784
- atomic .StoreUint32 (& t .resetPingStrikes , 1 )
785
- },
787
+ onWrite : t .setResetPingStrikes ,
786
788
})
787
789
if ! success {
788
790
if err != nil {
@@ -842,9 +844,7 @@ func (t *http2Server) WriteStatus(s *Stream, st *status.Status) error {
842
844
streamID : s .id ,
843
845
hf : headerFields ,
844
846
endStream : true ,
845
- onWrite : func () {
846
- atomic .StoreUint32 (& t .resetPingStrikes , 1 )
847
- },
847
+ onWrite : t .setResetPingStrikes ,
848
848
}
849
849
s .hdrMu .Unlock ()
850
850
success , err := t .controlBuf .execute (t .checkForHeaderListSize , trailingHeader )
@@ -899,9 +899,7 @@ func (t *http2Server) Write(s *Stream, hdr []byte, data []byte, opts *Options) e
899
899
streamID : s .id ,
900
900
h : hdr ,
901
901
d : data ,
902
- onEachWrite : func () {
903
- atomic .StoreUint32 (& t .resetPingStrikes , 1 )
904
- },
902
+ onEachWrite : t .setResetPingStrikes ,
905
903
}
906
904
if err := s .wq .get (int32 (len (hdr ) + len (data ))); err != nil {
907
905
select {
0 commit comments