fix pprof closing

This commit is contained in:
aler9 2020-08-30 14:27:26 +02:00
parent 0b589b3e7e
commit 106b628e6c
2 changed files with 35 additions and 20 deletions

50
main.go
View File

@ -248,25 +248,6 @@ func newProgram(args []string, stdin io.Reader) (*program, error) {
return nil, err
}
if p.metrics != nil {
go p.metrics.run()
}
if p.pprof != nil {
go p.pprof.run()
}
if _, ok := conf.protocolsParsed[gortsplib.StreamProtocolUdp]; ok {
go p.serverRtp.run()
go p.serverRtcp.run()
}
go p.serverRtsp.run()
for _, p := range p.paths {
p.onInit()
}
go p.run()
return p, nil
@ -285,6 +266,28 @@ func (p *program) log(format string, args ...interface{}) {
}
func (p *program) run() {
if p.metrics != nil {
go p.metrics.run()
}
if p.pprof != nil {
go p.pprof.run()
}
if p.serverRtp != nil {
go p.serverRtp.run()
}
if p.serverRtcp != nil {
go p.serverRtcp.run()
}
go p.serverRtsp.run()
for _, p := range p.paths {
p.onInit()
}
checkPathsTicker := time.NewTicker(5 * time.Second)
defer checkPathsTicker.Stop()
@ -520,8 +523,11 @@ outer:
p.serverRtsp.close()
if _, ok := p.conf.protocolsParsed[gortsplib.StreamProtocolUdp]; ok {
if p.serverRtcp != nil {
p.serverRtcp.close()
}
if p.serverRtp != nil {
p.serverRtp.close()
}
@ -534,6 +540,10 @@ outer:
p.metrics.close()
}
if p.pprof != nil {
p.pprof.close()
}
if p.logFile != nil {
p.logFile.Close()
}

View File

@ -1,6 +1,7 @@
package main
import (
"context"
"net"
"net/http"
_ "net/http/pprof"
@ -39,3 +40,7 @@ func (pp *pprof) run() {
panic(err)
}
}
func (pp *pprof) close() {
pp.server.Shutdown(context.Background())
}