| 989 | } |
| 990 | |
| 991 | func (f *folder) versionCleanupTimerFired(ctx context.Context) { |
| 992 | f.setState(FolderCleanWaiting) |
| 993 | defer f.setState(FolderIdle) |
| 994 | |
| 995 | if err := f.ioLimiter.TakeWithContext(ctx, 1); err != nil { |
| 996 | return |
| 997 | } |
| 998 | defer f.ioLimiter.Give(1) |
| 999 | |
| 1000 | f.setState(FolderCleaning) |
| 1001 | |
| 1002 | if err := f.versioner.Clean(ctx); err != nil { |
| 1003 | f.sl.WarnContext(ctx, "Failed to clean versions", slogutil.Error(err)) |
| 1004 | } |
| 1005 | |
| 1006 | f.versionCleanupTimer.Reset(f.versionCleanupInterval) |
| 1007 | } |
| 1008 | |
| 1009 | func (f *folder) WatchError() error { |
| 1010 | f.watchMut.Lock() |