fix timeline preload state check

This commit is contained in:
kim 2025-04-08 16:52:53 +01:00
commit cc86a08f15
3 changed files with 9 additions and 68 deletions

View file

@ -74,6 +74,8 @@ type StatusMeta struct {
// as-needed, caching prepared frontend representations where
// possible. This is largely wrapping code for our own codebase
// to be able to smoothly interact with structr.Timeline{}.
// ...
type StatusTimeline struct {
// underlying timeline cache of *StatusMeta{},
@ -302,7 +304,7 @@ func (t *StatusTimeline) Preload(
// Check if seen recently.
last := recentBoosts[id]
value.repeatBoost = last < 40
value.repeatBoost = (last < 40)
// Update last-seen idx.
recentBoosts[id] = idx
@ -311,8 +313,12 @@ func (t *StatusTimeline) Preload(
// Mark timeline as preloaded.
old := t.preload.Swap(new(any))
if old != nil && *old != false {
log.Errorf(ctx, "BUG: invalid timeline preload state: %#v", *old)
if old != nil {
switch t := (*old).(type) {
case *sync.WaitGroup:
default:
log.Errorf(ctx, "BUG: invalid timeline preload state: %#v", t)
}
}
return n, nil

View file

@ -90,35 +90,3 @@ func (p *Processor) HomeTimelineGet(
},
)
}
// preloadHomeTimeline will ensure that the timeline
// cache for home owned by given account is preloaded.
// func (p *Processor) preloadHomeTimeline(
// ctx context.Context,
// account *gtsmodel.Account,
// ) error {
// // Get (and so, create) home timeline cache for account ID.
// timeline := p.state.Caches.Timelines.Home.MustGet(account.ID)
// // Preload timeline with funcs.
// n, err := timeline.Preload(ctx,
// // Database load function.
// func(page *paging.Page) ([]*gtsmodel.Status, error) {
// return p.state.DB.GetHomeTimeline(ctx, account.ID, page)
// },
// // Status filtering function.
// func(status *gtsmodel.Status) (bool, error) {
// ok, err := p.visFilter.StatusHomeTimelineable(ctx, account, status)
// return !ok, err
// },
// )
// if err != nil {
// return gtserror.Newf("error preloading home timeline %s: %w", account.ID, err)
// }
// log.Infof(ctx, "%s: preloaded %d", account.Username, n)
// return nil
// }

View file

@ -103,36 +103,3 @@ func (p *Processor) ListTimelineGet(
},
)
}
// preloadListTimeline will ensure that the timeline
// cache for list owned by given account is preloaded.
// func (p *Processor) preloadListTimeline(
// ctx context.Context,
// account *gtsmodel.Account,
// list *gtsmodel.List,
// ) error {
// // Get (and so, create) list timeline cache for list ID.
// timeline := p.state.Caches.Timelines.List.MustGet(list.ID)
// // Preload timeline with funcs.
// n, err := timeline.Preload(ctx,
// // Database load function.
// func(page *paging.Page) ([]*gtsmodel.Status, error) {
// return p.state.DB.GetListTimeline(ctx, list.ID, page)
// },
// // Status filtering function.
// func(status *gtsmodel.Status) (bool, error) {
// ok, err := p.visFilter.StatusHomeTimelineable(ctx, account, status)
// return !ok, err
// },
// )
// if err != nil {
// return gtserror.Newf("error preloading list timeline %s: %w", list.ID, err)
// }
// log.Infof(ctx, "%s[%q]: preloaded %d", account.Username, list.Title, n)
// return nil
// }