From 3a29a59e55dc8aa8a9bf31395f0f942eea700919 Mon Sep 17 00:00:00 2001 From: kim Date: Sat, 17 May 2025 11:52:49 +0000 Subject: [bugfix] fix case of failed timeline preload causing lockups (#4182) - moves preloader Done() function calling to be handled entirely by the preloader, not the caller - adds tests for multiple preload success / failure / clear states Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4182 Co-authored-by: kim Co-committed-by: kim --- internal/cache/timeline/status.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'internal/cache/timeline/status.go') diff --git a/internal/cache/timeline/status.go b/internal/cache/timeline/status.go index c0c394042..59c339c91 100644 --- a/internal/cache/timeline/status.go +++ b/internal/cache/timeline/status.go @@ -196,14 +196,9 @@ func (t *StatusTimeline) Preload( n int, err error, ) { - t.preloader.CheckPreload(func(ptr *any) { + err = t.preloader.CheckPreload(func() error { n, err = t.preload(loadPage, filter) - if err != nil { - return - } - - // Mark as preloaded. - t.preloader.Done(ptr) + return err }) return } -- cgit v1.2.3