From cd6357f221100bac1490fd65617c9bbe8d231b86 Mon Sep 17 00:00:00 2001 From: WAKAYAMA shirou Date: Thu, 24 Apr 2014 00:23:21 +0900 Subject: [PATCH] remove Refresh func. --- process_freebsd.go | 57 +++++++++++++++++++----------------------------------- 1 file changed, 20 insertions(+), 37 deletions(-) diff --git a/process_freebsd.go b/process_freebsd.go index d210a22..ae05af6 100644 --- a/process_freebsd.go +++ b/process_freebsd.go @@ -23,29 +23,6 @@ func Pids() ([]int32, error) { return ret, nil } -// Refresh reloads all the data associated with this process. -func (p *Process) Refresh() error { - - mib := []int32{CTL_KERN, KERN_PROC, KERN_PROC_PID, p.Pid} - - buf, length, err := call_syscall(mib) - if err != nil { - return err - } - proc_k := Kinfo_proc{} - if length != uint64(unsafe.Sizeof(proc_k)) { - return err - } - - k, err := parse_kinfo_proc(buf) - if err != nil { - return err - } - - copy_params(&k, p) - return nil -} - func copy_params(k *Kinfo_proc, p *Process) error { p.Exe = byteToString(k.Ki_comm[:]) p.Ppid = k.Ki_ppid @@ -53,17 +30,6 @@ func copy_params(k *Kinfo_proc, p *Process) error { return nil } -func findProcess(pid int32) (*Process, error) { - mib := []int32{CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, pid} - - _, _, err := call_syscall(mib) - if err != nil { - return &Process{}, err - } - - return newProcess(pid) -} - func processes() ([]Process, error) { results := make([]Process, 0, 50) @@ -85,7 +51,7 @@ func processes() ([]Process, error) { if err != nil { continue } - p, err := newProcess(int32(k.Ki_pid)) + p, err := NewProcess(int32(k.Ki_pid)) if err != nil { continue } @@ -146,7 +112,24 @@ func call_syscall(mib []int32) ([]byte, uint64, error) { return buf, length, nil } -func newProcess(pid int32) (*Process, error) { +func NewProcess(pid int32) (*Process, error) { p := &Process{Pid: pid} - return p, p.Refresh() + mib := []int32{CTL_KERN, KERN_PROC, KERN_PROC_PID, p.Pid} + + buf, length, err := call_syscall(mib) + if err != nil { + return nil, err + } + proc_k := Kinfo_proc{} + if length != uint64(unsafe.Sizeof(proc_k)) { + return nil, err + } + + k, err := parse_kinfo_proc(buf) + if err != nil { + return nil, err + } + + copy_params(&k, p) + return p, nil }