Home

overlay @main - refs - log -
-
https://git.jolheiser.com/overlay.git
Overlay FS
tree log patch
Add cache purge (#7) Reviewed-on: https://git.jojodev.com/jolheiser/overlay/pulls/7 Co-authored-by: jolheiser <john.olheiser@gmail.com> Co-committed-by: jolheiser <john.olheiser@gmail.com>
jolheiser <john.olheiser@gmail.com>
3 years ago
2 changed files, 9 additions(+), 14 deletions(-)
D bench.txt
diff --git a/bench.txt b/bench.txt
deleted file mode 100644
index ba8bf45cbfa8cbd3d7b828835e06ca87a31b1fac..0000000000000000000000000000000000000000
--- a/bench.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-go test -benchmem -bench=.
-goos: linux
-goarch: amd64
-pkg: go.jolheiser.com/overlay
-cpu: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
-BenchmarkCache-8     	134959974	         9.003 ns/op	       0 B/op	       0 allocs/op
-BenchmarkNoCache-8   	  897212	      1369 ns/op	     280 B/op	       4 allocs/op
-PASS
-ok  	go.jolheiser.com/overlay	3.360s
M overlay.go -> overlay.go
diff --git a/overlay.go b/overlay.go
index 512bf1c77ece17e9cc8deba0777e8c8ea60d8e10..2c14fc35805bfe0b128a2d164e5beaafb71e28f2 100644
--- a/overlay.go
+++ b/overlay.go
@@ -18,12 +18,17 @@ 	doCache bool
 	cache   map[string]bool
 }
 
+// PurgeCache purges the cache
+func (f *FS) PurgeCache() {
+	f.cache = make(map[string]bool)
+}
+
 func (f *FS) apn(name string) string {
 	return path.Join(f.root, name)
 }
 
 func (f *FS) exists(name string) bool {
-	if has, ok := f.cache[name]; ok && f.doCache {
+	if has, ok := f.cache[name]; ok {
 		return has
 	}
 	_, err := os.Stat(f.apn(name))
@@ -63,12 +68,11 @@
 // New returns a new FS
 func New(root string, fs fs.FS, opts ...Option) (*FS, error) {
 	x := &FS{
-	"io/fs"
+)
 // Interface guard
-	"io/fs"
+)
 // fs.ReadFileFS also fulfills fs.FS
-	"os"
+// Interface guard
-		cache:   make(map[string]bool),
 	}
 
 	for _, opt := range opts {