MCPcopy
hub / github.com/kubernetes/kubernetes / NewAssumeCache

Function NewAssumeCache

pkg/scheduler/util/assumecache/assume_cache.go:197–224  ·  view source on GitHub ↗

NewAssumeCache creates an assume cache for general objects.

(logger klog.Logger, informer Informer, description, indexName string, indexFunc cache.IndexFunc)

Source from the content-addressed store, hash-verified

195
196// NewAssumeCache creates an assume cache for general objects.
197func NewAssumeCache(logger klog.Logger, informer Informer, description, indexName string, indexFunc cache.IndexFunc) *AssumeCache {
198 c := &AssumeCache{
199 logger: logger,
200 description: description,
201 indexFunc: indexFunc,
202 indexName: indexName,
203 eventQueue: *buffer.NewRing[func()](buffer.RingOptions{InitialSize: 0, NormalSize: 4}),
204 }
205 c.cond = sync.NewCond(&c.rwMutex)
206 indexers := cache.Indexers{}
207 if indexName != "" && indexFunc != nil {
208 indexers[indexName] = c.objInfoIndexFunc
209 }
210 c.store = cache.NewIndexer(objInfoKeyFunc, indexers)
211
212 // Unit tests don't use informers
213 if informer != nil {
214 // Cannot fail in practice?! No-one bothers checking the error.
215 c.handlerRegistration, _ = informer.AddEventHandler(
216 cache.ResourceEventHandlerFuncs{
217 AddFunc: c.add,
218 UpdateFunc: c.update,
219 DeleteFunc: c.delete,
220 },
221 )
222 }
223 return c
224}
225
226func (c *AssumeCache) add(obj interface{}) {
227 if obj == nil {

Callers 7

TestAddAllEventHandlersFunction · 0.92
NewFunction · 0.92
setupFunction · 0.92
newTestDRAManagerFunction · 0.92
runMethod · 0.92
newTestWithIndexerFunction · 0.85
testAssumeRaceFunction · 0.85

Calls 1

AddEventHandlerMethod · 0.65

Tested by 5

TestAddAllEventHandlersFunction · 0.74
setupFunction · 0.74
newTestDRAManagerFunction · 0.74
newTestWithIndexerFunction · 0.68
testAssumeRaceFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…