in providers/darwin/process_darwin.go [40:59]
func (s darwinSystem) Processes() ([]types.Process, error) {
ps, err := unix.SysctlKinfoProcSlice("kern.proc.all")
if err != nil {
return nil, fmt.Errorf("failed to read process table: %w", err)
}
processes := make([]types.Process, 0, len(ps))
for _, kp := range ps {
pid := kp.Proc.P_pid
if pid == 0 {
continue
}
processes = append(processes, &process{
pid: int(pid),
})
}
return processes, nil
}