forked from quic-go/quic-go
remove periodic logging functionality from packet handler map (#5110)
This commit is contained in:
@@ -46,7 +46,6 @@ type packetHandlerMap struct {
|
|||||||
resetTokens map[protocol.StatelessResetToken] /* stateless reset token */ packetHandler
|
resetTokens map[protocol.StatelessResetToken] /* stateless reset token */ packetHandler
|
||||||
|
|
||||||
closed bool
|
closed bool
|
||||||
closeChan chan struct{}
|
|
||||||
|
|
||||||
enqueueClosePacket func(closePacket)
|
enqueueClosePacket func(closePacket)
|
||||||
|
|
||||||
@@ -58,44 +57,13 @@ type packetHandlerMap struct {
|
|||||||
var _ packetHandlerManager = &packetHandlerMap{}
|
var _ packetHandlerManager = &packetHandlerMap{}
|
||||||
|
|
||||||
func newPacketHandlerMap(enqueueClosePacket func(closePacket), logger utils.Logger) *packetHandlerMap {
|
func newPacketHandlerMap(enqueueClosePacket func(closePacket), logger utils.Logger) *packetHandlerMap {
|
||||||
h := &packetHandlerMap{
|
return &packetHandlerMap{
|
||||||
closeChan: make(chan struct{}),
|
|
||||||
handlers: make(map[protocol.ConnectionID]packetHandler),
|
handlers: make(map[protocol.ConnectionID]packetHandler),
|
||||||
resetTokens: make(map[protocol.StatelessResetToken]packetHandler),
|
resetTokens: make(map[protocol.StatelessResetToken]packetHandler),
|
||||||
deleteRetiredConnsAfter: protocol.RetiredConnectionIDDeleteTimeout,
|
deleteRetiredConnsAfter: protocol.RetiredConnectionIDDeleteTimeout,
|
||||||
enqueueClosePacket: enqueueClosePacket,
|
enqueueClosePacket: enqueueClosePacket,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
}
|
}
|
||||||
if h.logger.Debug() {
|
|
||||||
go h.logUsage()
|
|
||||||
}
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *packetHandlerMap) logUsage() {
|
|
||||||
ticker := time.NewTicker(2 * time.Second)
|
|
||||||
var printedZero bool
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-h.closeChan:
|
|
||||||
return
|
|
||||||
case <-ticker.C:
|
|
||||||
}
|
|
||||||
|
|
||||||
h.mutex.Lock()
|
|
||||||
numHandlers := len(h.handlers)
|
|
||||||
numTokens := len(h.resetTokens)
|
|
||||||
h.mutex.Unlock()
|
|
||||||
// If the number tracked handlers and tokens is zero, only print it a single time.
|
|
||||||
hasZero := numHandlers == 0 && numTokens == 0
|
|
||||||
if !hasZero || (hasZero && !printedZero) {
|
|
||||||
h.logger.Debugf("Tracking %d connection IDs and %d reset tokens.\n", numHandlers, numTokens)
|
|
||||||
printedZero = false
|
|
||||||
if hasZero {
|
|
||||||
printedZero = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *packetHandlerMap) Get(id protocol.ConnectionID) (packetHandler, bool) {
|
func (h *packetHandlerMap) Get(id protocol.ConnectionID) (packetHandler, bool) {
|
||||||
@@ -206,14 +174,11 @@ func (h *packetHandlerMap) GetByResetToken(token protocol.StatelessResetToken) (
|
|||||||
|
|
||||||
func (h *packetHandlerMap) Close(e error) {
|
func (h *packetHandlerMap) Close(e error) {
|
||||||
h.mutex.Lock()
|
h.mutex.Lock()
|
||||||
|
|
||||||
if h.closed {
|
if h.closed {
|
||||||
h.mutex.Unlock()
|
h.mutex.Unlock()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
close(h.closeChan)
|
|
||||||
|
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
for _, handler := range h.handlers {
|
for _, handler := range h.handlers {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
|
|||||||
Reference in New Issue
Block a user