diff --git a/vfs/cache.go b/vfs/cache.go index 3ca68f712..302d98dd9 100644 --- a/vfs/cache.go +++ b/vfs/cache.go @@ -387,6 +387,10 @@ func (c *cache) clean() { // // doesn't return until context is cancelled func (c *cache) cleaner(ctx context.Context) { + if c.opt.CachePollInterval <= 0 { + fs.Debugf(nil, "Cache cleaning thread disabled because poll interval <= 0") + return + } // Start cleaning the cache immediately c.clean() // Then every interval specified diff --git a/vfs/cache_test.go b/vfs/cache_test.go index 5b8fd1f0f..200a68aea 100644 --- a/vfs/cache_test.go +++ b/vfs/cache_test.go @@ -63,9 +63,12 @@ func TestCacheNew(t *testing.T) { defer r.Finalise() ctx, cancel := context.WithCancel(context.Background()) + defer cancel() - c, err := newCache(ctx, r.Fremote, &DefaultOpt) - cancel() // kill the background cache cleaning as it interferes with the tests + // Disable the cache cleaner as it interferes with these tests + opt := DefaultOpt + opt.CachePollInterval = 0 + c, err := newCache(ctx, r.Fremote, &opt) require.NoError(t, err) assert.Contains(t, c.root, "vfs")