]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
Fix data race (#201)
authorqydysky <qydysky@foxmail.com>
Sat, 10 May 2025 12:01:19 +0000 (20:01 +0800)
committerGitHub <noreply@github.com>
Sat, 10 May 2025 12:01:19 +0000 (20:01 +0800)
Reply/F/danmuMerge/danmuMerge.go

index 1d071c2d981134b624ffd6a561e3dab148c28d36..ed0426cac51aa9643cb1a0d46d12dfbedc478c6a 100644 (file)
@@ -62,12 +62,12 @@ func (t *danmuMerge) Init(ctx context.Context, roomid int) {
                for {
                        select {
                        case <-t.ticker.C:
-                               t.now += 1
                        case <-ctx.Done():
                                return
                        }
 
                        t.Lock()
+                       t.now += 1
                        if len(t.buf) != 0 {
                                for k, v := range t.buf {
                                        if v.Exprie <= t.now {
@@ -84,8 +84,8 @@ func (t *danmuMerge) Init(ctx context.Context, roomid int) {
 
 // Do implements TargetInterface.
 func (t *danmuMerge) Do(s string) uint {
-       t.RLock()
-       defer t.RUnlock()
+       t.Lock()
+       defer t.Unlock()
 
        if t.roomid == 0 || t.f == nil {
                return 0