MCPcopy
hub / github.com/containerd/containerd / RegisterCollectibleResource

Method RegisterCollectibleResource

core/metadata/db.go:322–340  ·  view source on GitHub ↗

RegisterCollectibleResource registers a resource type which can be referenced by metadata resources and garbage collected. Collectible Resources are useful ephemeral resources which need to be tracked by go away after reboot or process restart. A few limitations to consider: - Collectible Resources

(t gc.ResourceType, c Collector)

Source from the content-addressed store, hash-verified

320// - Collectible Resources must track whether the resource is active and/or
321// lease membership.
322func (m *DB) RegisterCollectibleResource(t gc.ResourceType, c Collector) {
323 if t < resourceEnd {
324 panic("cannot re-register metadata resource")
325 } else if t >= gc.ResourceMax {
326 panic("resource type greater than max")
327 }
328
329 m.wlock.Lock()
330 defer m.wlock.Unlock()
331
332 if m.collectors == nil {
333 m.collectors = map[gc.ResourceType]Collector{}
334 }
335
336 if _, ok := m.collectors[t]; ok {
337 panic("cannot register collectible type twice")
338 }
339 m.collectors[t] = c
340}
341
342// namespacedEvent is used to handle any event for a namespace
343type namespacedEvent struct {

Callers 3

TestMetadataCollectorFunction · 0.80
initFunction · 0.80
initFunction · 0.80

Calls 2

LockMethod · 0.65
UnlockMethod · 0.65

Tested by 1

TestMetadataCollectorFunction · 0.64