github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/client/allocrunner/cgroup_hook.go (about)

     1  package allocrunner
     2  
     3  import (
     4  	"github.com/hashicorp/nomad/client/lib/cgutil"
     5  	"github.com/hashicorp/nomad/nomad/structs"
     6  )
     7  
     8  func newCgroupHook(alloc *structs.Allocation, man cgutil.CpusetManager) *cgroupHook {
     9  	return &cgroupHook{
    10  		alloc:         alloc,
    11  		cpusetManager: man,
    12  	}
    13  }
    14  
    15  type cgroupHook struct {
    16  	alloc         *structs.Allocation
    17  	cpusetManager cgutil.CpusetManager
    18  }
    19  
    20  func (c *cgroupHook) Name() string {
    21  	return "cgroup"
    22  }
    23  
    24  func (c *cgroupHook) Prerun() error {
    25  	c.cpusetManager.AddAlloc(c.alloc)
    26  	return nil
    27  }
    28  
    29  func (c *cgroupHook) Postrun() error {
    30  	c.cpusetManager.RemoveAlloc(c.alloc.ID)
    31  	return nil
    32  }