mirror of
https://github.com/bluenviron/mediamtx.git
synced 2026-01-23 11:59:51 -08:00
fix memory leak caused by time.Timer
This commit is contained in:
parent
0495c1ed4b
commit
08823ddc92
3 changed files with 57 additions and 47 deletions
|
|
@ -46,35 +46,34 @@ func (e *ExternalCmd) run() {
|
|||
defer close(e.done)
|
||||
|
||||
for {
|
||||
if !e.runInner() {
|
||||
ok := func() bool {
|
||||
ok := e.runInner()
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
|
||||
if !e.restart {
|
||||
<-e.terminate
|
||||
return false
|
||||
}
|
||||
|
||||
t := time.NewTimer(restartPause)
|
||||
defer t.Stop()
|
||||
|
||||
select {
|
||||
case <-t.C:
|
||||
return true
|
||||
case <-e.terminate:
|
||||
return false
|
||||
}
|
||||
}()
|
||||
if !ok {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (e *ExternalCmd) runInner() bool {
|
||||
ok := e.runInnerInner()
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
|
||||
if !e.restart {
|
||||
<-e.terminate
|
||||
return false
|
||||
}
|
||||
|
||||
t := time.NewTimer(restartPause)
|
||||
defer t.Stop()
|
||||
|
||||
select {
|
||||
case <-t.C:
|
||||
return true
|
||||
case <-e.terminate:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func (e *ExternalCmd) runInnerInner() bool {
|
||||
var cmd *exec.Cmd
|
||||
if runtime.GOOS == "windows" {
|
||||
// on Windows the shell is not used and command is started directly
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue