Don't close channels when clearing queue (we might race and panic, when the GC will still clean it up for us anyway)
parent
2fdc318f2c
commit
4c0103a2d5
|
@ -154,7 +154,7 @@ func (oqs *OutgoingQueues) getQueue(destination gomatrixserverlib.ServerName) *d
|
||||||
oqs.queuesMutex.Lock()
|
oqs.queuesMutex.Lock()
|
||||||
defer oqs.queuesMutex.Unlock()
|
defer oqs.queuesMutex.Unlock()
|
||||||
oq, ok := oqs.queues[destination]
|
oq, ok := oqs.queues[destination]
|
||||||
if !ok {
|
if !ok && oq != nil {
|
||||||
destinationQueueTotal.Inc()
|
destinationQueueTotal.Inc()
|
||||||
oq = &destinationQueue{
|
oq = &destinationQueue{
|
||||||
queues: oqs,
|
queues: oqs,
|
||||||
|
@ -178,8 +178,6 @@ func (oqs *OutgoingQueues) clearQueue(oq *destinationQueue) {
|
||||||
oqs.queuesMutex.Lock()
|
oqs.queuesMutex.Lock()
|
||||||
defer oqs.queuesMutex.Unlock()
|
defer oqs.queuesMutex.Unlock()
|
||||||
|
|
||||||
close(oq.notify)
|
|
||||||
close(oq.interruptBackoff)
|
|
||||||
delete(oqs.queues, oq.destination)
|
delete(oqs.queues, oq.destination)
|
||||||
destinationQueueTotal.Dec()
|
destinationQueueTotal.Dec()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue