internal/pkg: enable cache access during store

This is still not ideal as it makes entry into Store sequential. This will be improved after more usage code is written.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-01-04 00:39:14 +09:00
parent 05202cf994
commit bd0ef086b1

View File

@@ -144,7 +144,10 @@ type Cache struct {
// Directory where all [Cache] related files are placed.
base *check.Absolute
// Synchronises access to public methods.
// Protects the Store critical section.
storeMu sync.Mutex
// Synchronises access to most public methods.
mu sync.RWMutex
}
@@ -208,8 +211,8 @@ func (c *Cache) Store(
err error,
) {
pathname = c.pathnameIdent(&id)
c.mu.Lock()
defer c.mu.Unlock()
c.storeMu.Lock()
defer c.storeMu.Unlock()
_, err = os.Lstat(pathname.String())
if err == nil || !errors.Is(err, os.ErrNotExist) {