| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package containers
- import (
- "fmt"
- "sync"
- "github.com/mdlayher/taskstats"
- )
- var (
- taskstatsClient *taskstats.Client
- taskstatsLock sync.Mutex
- )
- func TaskstatsInit() error {
- c, err := taskstats.New()
- if err != nil {
- return err
- }
- taskstatsClient = c
- return nil
- }
- func TaskstatsTGID(pid uint32) (*taskstats.Stats, error) {
- if taskstatsClient == nil {
- return nil, fmt.Errorf("taskstats client not initialized")
- }
- taskstatsLock.Lock()
- defer taskstatsLock.Unlock()
- s, err := taskstatsClient.TGID(int(pid))
- if err != nil {
- return nil, err
- }
- return s, nil
- }
- func TaskstatsPID(pid uint32) (*taskstats.Stats, error) {
- if taskstatsClient == nil {
- return nil, fmt.Errorf("taskstats client not initialized")
- }
- taskstatsLock.Lock()
- defer taskstatsLock.Unlock()
- s, err := taskstatsClient.PID(int(pid))
- if err != nil {
- return nil, err
- }
- return s, nil
- }
|