From: qydysky Date: Sat, 10 May 2025 12:01:19 +0000 (+0800) Subject: Fix data race (#201) X-Git-Tag: v0.18.0~3 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=53ee5acaecbba2ed91d026367f8feb9e413ba2ad;p=bili_danmu%2F.git Fix data race (#201) --- diff --git a/Reply/F/danmuMerge/danmuMerge.go b/Reply/F/danmuMerge/danmuMerge.go index 1d071c2..ed0426c 100644 --- a/Reply/F/danmuMerge/danmuMerge.go +++ b/Reply/F/danmuMerge/danmuMerge.go @@ -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