]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
Fix 营收goroutine泄露
authorqydysky <qydysky@foxmail.com>
Mon, 10 Jul 2023 06:22:35 +0000 (14:22 +0800)
committerqydysky <qydysky@foxmail.com>
Mon, 10 Jul 2023 06:22:35 +0000 (14:22 +0800)
Reply/F.go
Reply/Reply.go
bili_danmu.go

index 094b0be6ba08d12d0b519aa5776dbcd90c67d9c4..8da4b157414b2931310a786c198a72792407a6b8 100644 (file)
@@ -123,20 +123,33 @@ func selfcross2(a []string) (float32, string) {
 
 // 功能区
 // ShowRev 显示营收
-var ShowRev_old float64
+var ShowRev sync.Map
 
 // 显示营收
-func ShowRevf(counting bool) {
+func init() {
        if !IsOn("统计营收") {
                return
        }
-       for counting {
-               for c.C.Rev == ShowRev_old {
+       go func() {
+               clog := c.C.Log.Base_add(`营收`)
+               for {
+                       ShowRev.LoadOrStore(c.C.Roomid, 0)
+                       ShowRev.Range(func(key, value any) bool {
+                               if room, ok := key.(int); ok && c.C.Roomid == room {
+                                       if rev, ok := value.(float64); ok {
+                                               if c.C.Rev != rev {
+                                                       ShowRev.Store(room, c.C.Rev)
+                                                       clog.L(`I: `, fmt.Sprintf("营收 %d ¥%.2f", room, c.C.Rev))
+                                               }
+                                               return true
+                                       }
+                               }
+                               ShowRev.Delete(key)
+                               return true
+                       })
                        time.Sleep(time.Minute)
                }
-               ShowRev_old = c.C.Rev
-               c.C.Log.Base_add(`营收`).L(`I: `, fmt.Sprintf("营收 ¥%.2f", c.C.Rev))
-       }
+       }()
 }
 
 // Ass 弹幕转字幕
index e3081aa936f6edaca8ef7d80daaba3156ae9037d..a43700bbe4825b3542509d7be38ebd68a2ccd6c1 100644 (file)
@@ -751,10 +751,7 @@ func (replyF) preparing(s string) {
                msglog.L(`E: `, err)
                return
        } else {
-               { //附加功能 obs结束 savestream结束
-                       // Obs_R(false)
-                       // Obsf(false)
-                       go ShowRevf(false)
+               { //附加功能 savestream结束
                        c.C.Liveing = false
                        // 停止此房间录制
                        var roomId, _ = strconv.Atoi(type_item.Roomid)
index 3b346eab8b80c8b06ff996aa772ece2cb0e622af..1a640e53916e21134791f2cf889e59d20c86aaab 100644 (file)
@@ -277,11 +277,10 @@ func Start() {
                                        //附加功能 弹幕机 无cookie无法发送弹幕
                                        reply.Danmuji_auto()
                                }
-                               { //附加功能 进房间发送弹幕 直播流保存 营收 每日签到
+                               { //附加功能 进房间发送弹幕 直播流保存 每日签到
                                        go F.Dosign()
                                        go reply.Entry_danmu()
                                        go reply.StreamOStart(c.C.Roomid)
-                                       go reply.ShowRevf(true)
                                        go F.RoomEntryAction(c.C.Roomid)
                                }