@@ -21,6 +21,7 @@ import (
2121 "context"
2222 "errors"
2323 "fmt"
24+ "io/fs"
2425 "math"
2526 "os"
2627 "path/filepath"
@@ -478,9 +479,9 @@ func (c *Manager) Delete() error {
478479 return remove (c .path )
479480}
480481
481- func (c * Manager ) Procs (recursive bool ) ([]uint64 , error ) {
482- var processes []uint64
483- err := filepath .Walk (c .path , func (p string , info os .FileInfo , err error ) error {
482+ func (c * Manager ) getTasks (recursive bool , tType string ) ([]uint64 , error ) {
483+ var tasks []uint64
484+ err := filepath .Walk (c .path , func (p string , info fs .FileInfo , err error ) error {
484485 if err != nil {
485486 return err
486487 }
@@ -491,43 +492,25 @@ func (c *Manager) Procs(recursive bool) ([]uint64, error) {
491492 return filepath .SkipDir
492493 }
493494 _ , name := filepath .Split (p )
494- if name != cgroupProcs {
495+ if name != tType {
495496 return nil
496497 }
497- procs , err := parseCgroupProcsFile (p )
498+ curTasks , err := parseCgroupTasksFile (p )
498499 if err != nil {
499500 return err
500501 }
501- processes = append (processes , procs ... )
502+ tasks = append (tasks , curTasks ... )
502503 return nil
503504 })
504- return processes , err
505+ return tasks , err
506+ }
507+
508+ func (c * Manager ) Procs (recursive bool ) ([]uint64 , error ) {
509+ return c .getTasks (recursive , cgroupProcs )
505510}
506511
507512func (c * Manager ) Threads (recursive bool ) ([]uint64 , error ) {
508- var threads []uint64
509- err := filepath .Walk (c .path , func (p string , info os.FileInfo , err error ) error {
510- if err != nil {
511- return err
512- }
513- if ! recursive && info .IsDir () {
514- if p == c .path {
515- return nil
516- }
517- return filepath .SkipDir
518- }
519- _ , name := filepath .Split (p )
520- if name != cgroupThreads {
521- return nil
522- }
523- procs , err := parseCgroupProcsFile (p )
524- if err != nil {
525- return err
526- }
527- threads = append (threads , procs ... )
528- return nil
529- })
530- return threads , err
513+ return c .getTasks (recursive , cgroupThreads )
531514}
532515
533516func (c * Manager ) MoveTo (destination * Manager ) error {
0 commit comments