MCPcopy Create free account
hub / github.com/containerd/cgroups / memoryEvent

Method memoryEvent

cgroup1/memory.go:464–483  ·  view source on GitHub ↗
(path string, event MemoryEvent)

Source from the content-addressed store, hash-verified

462}
463
464func (m *memoryController) memoryEvent(path string, event MemoryEvent) (uintptr, error) {
465 root := m.Path(path)
466 efd, err := unix.Eventfd(0, unix.EFD_CLOEXEC)
467 if err != nil {
468 return 0, err
469 }
470 evtFile, err := os.Open(filepath.Join(root, event.EventFile()))
471 if err != nil {
472 unix.Close(efd)
473 return 0, err
474 }
475 defer evtFile.Close()
476 data := fmt.Sprintf("%d %d %s", efd, evtFile.Fd(), event.Arg())
477 evctlPath := filepath.Join(root, "cgroup.event_control")
478 if err := os.WriteFile(evctlPath, []byte(data), 0o700); err != nil {
479 unix.Close(efd)
480 return 0, err
481 }
482 return uintptr(efd), nil
483}

Callers 2

OOMEventFDMethod · 0.80
RegisterMemoryEventMethod · 0.80

Calls 3

PathMethod · 0.95
EventFileMethod · 0.65
ArgMethod · 0.65

Tested by

no test coverage detected