MCPcopy Create free account
hub / github.com/bufbuild/buf / getOrAddInsideWriteLock

Method getOrAddInsideWriteLock

private/pkg/cache/cache.go:51–62  ·  view source on GitHub ↗
(key K, getUncached func() (V, error))

Source from the content-addressed store, hash-verified

49}
50
51func (c *Cache[K, V]) getOrAddInsideWriteLock(key K, getUncached func() (V, error)) (V, error) {
52 if c.store == nil {
53 c.store = make(map[K]*result[V])
54 }
55 result, ok := c.store[key]
56 if ok {
57 return result.value, result.err
58 }
59 value, err := getUncached()
60 c.store[key] = newResult(value, err)
61 return value, err
62}
63
64type result[V any] struct {
65 value V

Callers 1

GetOrAddMethod · 0.95

Calls 1

newResultFunction · 0.85

Tested by

no test coverage detected