Browse Source

Fix Memory leak

pull/160/head
onthegit 4 years ago
parent
commit
7010cec326
  1. 5
      container/flv/muxer.go
  2. 2
      protocol/rtmp/stream.go

5
container/flv/muxer.go

@ -56,6 +56,7 @@ type FLVWriter struct { @@ -56,6 +56,7 @@ type FLVWriter struct {
buf []byte
closed chan struct{}
ctx *os.File
closedWriter bool
}
func NewFLVWriter(app, title, url string, ctx *os.File) *FLVWriter {
@ -131,6 +132,10 @@ func (writer *FLVWriter) Wait() { @@ -131,6 +132,10 @@ func (writer *FLVWriter) Wait() {
}
func (writer *FLVWriter) Close(error) {
if writer.closedWriter {
return
}
writer.closedWriter = true
writer.ctx.Close()
close(writer.closed)
}

2
protocol/rtmp/stream.go

@ -379,7 +379,7 @@ func (s *Stream) CheckAlive() (n int) { @@ -379,7 +379,7 @@ func (s *Stream) CheckAlive() (n int) {
v := val.(*PackWriterCloser)
if v.w != nil {
//Alive from RWBaser, check last frame now - timestamp, if > timeout then Remove it
if !v.w.Alive() && s.isStart {
if !v.w.Alive() {
log.Infof("write timeout remove")
s.ws.Delete(key)
v.w.Close(fmt.Errorf("write timeout"))

Loading…
Cancel
Save