fix: 订阅不存在的流时没有resolve导致卡死

This commit is contained in:
dexter
2022-03-10 09:01:57 +08:00
parent 67ac4c2d3c
commit acfa032f33
2 changed files with 6 additions and 7 deletions

11
main.go
View File

@@ -76,15 +76,9 @@ func Run(ctx context.Context, configFile string) (err error) {
contentBuf := bytes.NewBuffer(nil)
req, _ := http.NewRequestWithContext(ctx, http.MethodPost, "https://logs-01.loggly.com/inputs/758a662d-f630-40cb-95ed-2502a5e9c872/tag/monibuca/", nil)
req.Header.Set("Content-Type", "application/json")
content := fmt.Sprintf(`{"uuid":"%s","version":"%s","os":"%s","arch":"%s"`, UUID, Engine.Version, runtime.GOOS, runtime.GOARCH)
var c http.Client
for {
contentBuf.Reset()
postJson := fmt.Sprintf(`%s,"streams":%d}`, content, len(Streams.Map))
contentBuf.WriteString(postJson)
req.Body = ioutil.NopCloser(contentBuf)
c.Do(req)
select {
case event := <-EventBus:
for _, plugin := range Plugins {
@@ -93,6 +87,11 @@ func Run(ctx context.Context, configFile string) (err error) {
case <-ctx.Done():
return
case <-reportTimer.C:
contentBuf.Reset()
postJson := fmt.Sprintf(`%s,"streams":%d}`, content, len(Streams.Map))
contentBuf.WriteString(postJson)
req.Body = ioutil.NopCloser(contentBuf)
c.Do(req)
}
}
}

View File

@@ -308,10 +308,10 @@ func (s *Stream) run() {
}
suber.OnEvent(t) // 把现有的Track发给订阅者
}
v.Resolve(util.Null)
} else {
waitP = append(waitP, v)
}
v.Resolve(util.Null)
if len(s.Subscribers) == 1 {
s.action(ACTION_FIRSTENTER)
}