mirror of
https://github.com/bluenviron/mediamtx
synced 2025-02-27 00:50:29 +00:00
fix crash when closing
This commit is contained in:
parent
b526330607
commit
495a791b2d
3
main.go
3
main.go
@ -314,6 +314,9 @@ outer:
|
||||
}
|
||||
}()
|
||||
|
||||
p.udpPublishersMap.clear()
|
||||
p.readersMap.clear()
|
||||
|
||||
for _, p := range p.paths {
|
||||
p.onClose(true)
|
||||
}
|
||||
|
30
utils.go
30
utils.go
@ -211,15 +211,11 @@ func newUdpPublisherMap() *udpPublishersMap {
|
||||
}
|
||||
}
|
||||
|
||||
func (m *udpPublishersMap) get(addr udpPublisherAddr) *udpPublisher {
|
||||
m.mutex.RLock()
|
||||
defer m.mutex.RUnlock()
|
||||
func (m *udpPublishersMap) clear() {
|
||||
m.mutex.Lock()
|
||||
defer m.mutex.Unlock()
|
||||
|
||||
el, ok := m.ma[addr]
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
return el
|
||||
m.ma = make(map[udpPublisherAddr]*udpPublisher)
|
||||
}
|
||||
|
||||
func (m *udpPublishersMap) add(addr udpPublisherAddr, pub *udpPublisher) {
|
||||
@ -236,6 +232,17 @@ func (m *udpPublishersMap) remove(addr udpPublisherAddr) {
|
||||
delete(m.ma, addr)
|
||||
}
|
||||
|
||||
func (m *udpPublishersMap) get(addr udpPublisherAddr) *udpPublisher {
|
||||
m.mutex.RLock()
|
||||
defer m.mutex.RUnlock()
|
||||
|
||||
el, ok := m.ma[addr]
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
return el
|
||||
}
|
||||
|
||||
type readersMap struct {
|
||||
mutex sync.RWMutex
|
||||
ma map[*client]struct{}
|
||||
@ -247,6 +254,13 @@ func newReadersMap() *readersMap {
|
||||
}
|
||||
}
|
||||
|
||||
func (m *readersMap) clear() {
|
||||
m.mutex.Lock()
|
||||
defer m.mutex.Unlock()
|
||||
|
||||
m.ma = make(map[*client]struct{})
|
||||
}
|
||||
|
||||
func (m *readersMap) add(reader *client) {
|
||||
m.mutex.Lock()
|
||||
defer m.mutex.Unlock()
|
||||
|
Loading…
Reference in New Issue
Block a user