From a61c15bb7df4ec4bff7d576b77a88d966b0414ed Mon Sep 17 00:00:00 2001 From: Laptop Date: Sun, 6 Apr 2025 16:25:21 +0300 Subject: [PATCH] oh shit concurrent map writes hope this fixes it --- main.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index f8da321..929a262 100644 --- a/main.go +++ b/main.go @@ -111,14 +111,20 @@ func (pr *pooledReader) Close() error { type pooledFs struct { filesystem fs.FS pools map[string]*sync.Pool + mut sync.RWMutex } func (p *pooledFs) Open(name string) (*pooledReader, error) { + p.mut.RLock() pool := p.pools[name] + p.mut.RUnlock() + if pool == nil { misc.Log("pool is nil for", name) pool = &sync.Pool{} + p.mut.Lock() p.pools[name] = pool + p.mut.Unlock() goto new } @@ -140,7 +146,7 @@ func ServeFS(r *fiber.App, filesystem fs.FS) { cm := parseCompressionMaps(filesystem) misc.Log(cm) - pfs := &pooledFs{filesystem, make(map[string]*sync.Pool)} + pfs := &pooledFs{filesystem, make(map[string]*sync.Pool), sync.RWMutex{}} const path = "/_/static/"