@@ -22,8 +22,9 @@ type unifiedManager struct {
2222 mu sync.Mutex
2323 cgroups * configs.Cgroup
2424 // path is like "/sys/fs/cgroup/user.slice/user-1001.slice/session-1.scope"
25- path string
26- dbus * dbusConnManager
25+ path string
26+ dbus * dbusConnManager
27+ fsMgr cgroups.Manager
2728}
2829
2930func NewUnifiedManager (config * configs.Cgroup , path string ) (cgroups.Manager , error ) {
@@ -35,6 +36,11 @@ func NewUnifiedManager(config *configs.Cgroup, path string) (cgroups.Manager, er
3536 if err := m .initPath (); err != nil {
3637 return nil , err
3738 }
39+ var err error
40+ m .fsMgr , err = fs2 .NewManager (config , m .path )
41+ if err != nil {
42+ return nil , err
43+ }
3844
3945 return m , nil
4046}
@@ -361,16 +367,8 @@ func (m *unifiedManager) initPath() error {
361367 return nil
362368}
363369
364- func (m * unifiedManager ) fsManager () (cgroups.Manager , error ) {
365- return fs2 .NewManager (m .cgroups , m .path )
366- }
367-
368370func (m * unifiedManager ) Freeze (state configs.FreezerState ) error {
369- fsMgr , err := m .fsManager ()
370- if err != nil {
371- return err
372- }
373- return fsMgr .Freeze (state )
371+ return m .fsMgr .Freeze (state )
374372}
375373
376374func (m * unifiedManager ) GetPids () ([]int , error ) {
@@ -382,11 +380,7 @@ func (m *unifiedManager) GetAllPids() ([]int, error) {
382380}
383381
384382func (m * unifiedManager ) GetStats () (* cgroups.Stats , error ) {
385- fsMgr , err := m .fsManager ()
386- if err != nil {
387- return nil , err
388- }
389- return fsMgr .GetStats ()
383+ return m .fsMgr .GetStats ()
390384}
391385
392386func (m * unifiedManager ) Set (r * configs.Resources ) error {
@@ -399,11 +393,7 @@ func (m *unifiedManager) Set(r *configs.Resources) error {
399393 return fmt .Errorf ("unable to set unit properties: %w" , err )
400394 }
401395
402- fsMgr , err := m .fsManager ()
403- if err != nil {
404- return err
405- }
406- return fsMgr .Set (r )
396+ return m .fsMgr .Set (r )
407397}
408398
409399func (m * unifiedManager ) GetPaths () map [string ]string {
@@ -417,21 +407,13 @@ func (m *unifiedManager) GetCgroups() (*configs.Cgroup, error) {
417407}
418408
419409func (m * unifiedManager ) GetFreezerState () (configs.FreezerState , error ) {
420- fsMgr , err := m .fsManager ()
421- if err != nil {
422- return configs .Undefined , err
423- }
424- return fsMgr .GetFreezerState ()
410+ return m .fsMgr .GetFreezerState ()
425411}
426412
427413func (m * unifiedManager ) Exists () bool {
428414 return cgroups .PathExists (m .path )
429415}
430416
431417func (m * unifiedManager ) OOMKillCount () (uint64 , error ) {
432- fsMgr , err := m .fsManager ()
433- if err != nil {
434- return 0 , err
435- }
436- return fsMgr .OOMKillCount ()
418+ return m .fsMgr .OOMKillCount ()
437419}
0 commit comments