#1239·gorse

Dataset.AddFeedback 中的数据竞争,发生在 itemFeedback 和 numFeedback 之间(对 #1232 的跟进)

作者: shaun0927创建于 2026年4月17日更新于 2026年4月17日

func (d *Dataset) AddFeedback(user string, item string, ts time.Time) { d.lock.Lock() d.userFeedback[user] = append(d.userFeedback[user], item) d.numFeedback++ d.lock.Unlock() }


This fixes the race, but still leaks `numFeedback` in `CountFeedback`:

```go
func (d *Dataset) CountFeedback() int {
    d.lock.Lock()
    n := d.numFeedback
    d.lock.Unlock()
    return n
}