]> Cypherpunks repositories - gostls13.git/commitdiff
os: make the system info a value not a pointer on unix
authorRob Pike <r@golang.org>
Wed, 22 Feb 2012 20:51:49 +0000 (07:51 +1100)
committerRob Pike <r@golang.org>
Wed, 22 Feb 2012 20:51:49 +0000 (07:51 +1100)
fix a couple of other minor related details.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5690071

src/pkg/os/exec_plan9.go
src/pkg/os/exec_posix.go
src/pkg/os/exec_unix.go
src/pkg/os/exec_windows.go

index 9da86e26397c1d36be215e49b39c8422ea440574..1c9e2b997f8d4192e70d980124987f90ea460cf7 100644 (file)
@@ -66,7 +66,7 @@ func (p *Process) Kill() error {
 }
 
 // Wait waits for the Process to exit or stop, and then returns a
-// Waitmsg describing its status and an error, if any.
+// ProcessState describing its status and an error, if any.
 func (p *Process) Wait() (ps *ProcessState, err error) {
        var waitmsg syscall.Waitmsg
 
@@ -89,7 +89,7 @@ func (p *Process) Wait() (ps *ProcessState, err error) {
 
        ps = &ProcessState{
                pid:    waitmsg.Pid,
-               status: waitmsg,
+               status: &waitmsg,
        }
        return ps, nil
 }
@@ -110,8 +110,8 @@ func findProcess(pid int) (p *Process, err error) {
 
 // ProcessState stores information about process as reported by Wait.
 type ProcessState struct {
-       pid    int             // The process's id.
-       status syscall.Waitmsg // System-dependent status info.
+       pid    int              // The process's id.
+       status *syscall.Waitmsg // System-dependent status info.
 }
 
 // Pid returns the process id of the exited process.
@@ -134,14 +134,14 @@ func (p *ProcessState) Success() bool {
 // the process.  Convert it to the appropriate underlying
 // type, such as *syscall.Waitmsg on Plan 9, to access its contents.
 func (p *ProcessState) Sys() interface{} {
-       return &p.status
+       return p.status
 }
 
 // SysUsage returns system-dependent resource usage information about
 // the exited process.  Convert it to the appropriate underlying
-// type, such as *syscall.Waitmsg on Unix, to access its contents.
+// type, such as *syscall.Waitmsg on Plan 9, to access its contents.
 func (p *ProcessState) SysUsage() interface{} {
-       return &p.status
+       return p.status
 }
 
 // UserTime returns the user CPU time of the exited process and its children.
index 2b8d2b2b2b207eb711f077c7b1f2828342330241..4a75cb67fb5ef35cecd357aebb2144630405546b 100644 (file)
@@ -44,8 +44,8 @@ func (p *Process) Kill() error {
 
 // ProcessState stores information about process as reported by Wait.
 type ProcessState struct {
-       pid    int                 // The process's id.
-       status *syscall.WaitStatus // System-dependent status info.
+       pid    int                // The process's id.
+       status syscall.WaitStatus // System-dependent status info.
        rusage *syscall.Rusage
 }
 
@@ -67,7 +67,7 @@ func (p *ProcessState) Success() bool {
 
 // Sys returns system-dependent exit information about
 // the process.  Convert it to the appropriate underlying
-// type, such as *syscall.WaitStatus on Unix, to access its contents.
+// type, such as syscall.WaitStatus on Unix, to access its contents.
 func (p *ProcessState) Sys() interface{} {
        return p.status
 }
@@ -110,7 +110,7 @@ func (p *ProcessState) String() string {
        if p == nil {
                return "<nil>"
        }
-       status := p.Sys().(*syscall.WaitStatus)
+       status := p.Sys().(syscall.WaitStatus)
        res := ""
        switch {
        case status.Exited():
index e5905f06af4ba8657c336c6dac3946edc9086d07..8d000e9ef15e6e1107e8477df59d70711af89afe 100644 (file)
@@ -30,7 +30,7 @@ func (p *Process) Wait() (ps *ProcessState, err error) {
        }
        ps = &ProcessState{
                pid:    pid1,
-               status: &status,
+               status: status,
                rusage: &rusage,
        }
        return ps, nil
index 8887ba4ee371335dc60b4f9babee7fb8fcd7d2b2..dab0dc97571c7c185e34b8cae4eed96f1771f5d2 100644 (file)
@@ -30,7 +30,7 @@ func (p *Process) Wait() (ps *ProcessState, err error) {
                return nil, NewSyscallError("GetExitCodeProcess", e)
        }
        p.done = true
-       return &ProcessState{p.Pid, &syscall.WaitStatus{Status: s, ExitCode: ec}, new(syscall.Rusage)}, nil
+       return &ProcessState{p.Pid, syscall.WaitStatus{Status: s, ExitCode: ec}, new(syscall.Rusage)}, nil
 }
 
 // Signal sends a signal to the Process.