Skip to content

Commit 03efcb3

Browse files
committed
chore: factorize getBytes
1 parent c7d018b commit 03efcb3

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

internal/cache/cache.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,20 +81,15 @@ func (c *Cache) Get(pkg *packages.Package, mode HashMode, key string, data any)
8181
return fmt.Errorf("failed to calculate package %s action id: %w", pkg.Name, err)
8282
}
8383

84-
var b []byte
85-
c.ioSem <- struct{}{}
86-
c.sw.TrackStage("cache io", func() {
87-
b, _, err = cache.GetBytes(c.lowLevelCache, actionID)
88-
})
89-
<-c.ioSem
84+
cachedData, err := c.getBytes(actionID)
9085
if err != nil {
9186
if cache.IsErrMissing(err) {
9287
return ErrMissing
9388
}
9489
return fmt.Errorf("failed to get data from low-level cache by key %s for package %s: %w", key, pkg.Name, err)
9590
}
9691

97-
return c.decode(b, data)
92+
return c.decode(cachedData, data)
9893
}
9994

10095
func (c *Cache) buildKey(pkg *packages.Package, mode HashMode, key string) (cache.ActionID, error) {
@@ -224,6 +219,23 @@ func (c *Cache) putBytes(actionID cache.ActionID, buf *bytes.Buffer) error {
224219
return nil
225220
}
226221

222+
func (c *Cache) getBytes(actionID cache.ActionID) ([]byte, error) {
223+
c.ioSem <- struct{}{}
224+
225+
cachedData, err := timeutils.TrackStage[[]byte](c.sw, "cache io", func() ([]byte, error) {
226+
b, _, errGB := cache.GetBytes(c.lowLevelCache, actionID)
227+
return b, errGB
228+
})
229+
230+
<-c.ioSem
231+
232+
if err != nil {
233+
return nil, err
234+
}
235+
236+
return cachedData, nil
237+
}
238+
227239
func (c *Cache) encode(data any) (*bytes.Buffer, error) {
228240
buf := &bytes.Buffer{}
229241
err := c.sw.TrackStageErr("gob", func() error {

0 commit comments

Comments
 (0)