1
0
mirror of https://github.com/golang/go synced 2024-11-24 21:10:04 -07:00

os, syscall: update for error

R=adg
CC=golang-dev
https://golang.org/cl/5333052
This commit is contained in:
Russ Cox 2011-11-01 22:12:41 -04:00
parent 44526cdbe0
commit f1b64aa758
3 changed files with 10 additions and 13 deletions

View File

@ -7,13 +7,14 @@
package os package os
import ( import (
"errors"
"syscall" "syscall"
"utf16" "utf16"
"unsafe" "unsafe"
) )
// ENOENV is the error indicating that an environment variable does not exist. // ENOENV is the error indicating that an environment variable does not exist.
var ENOENV = NewError("no such environment variable") var ENOENV = errors.New("no such environment variable")
// Getenverror retrieves the value of the environment variable named by the key. // Getenverror retrieves the value of the environment variable named by the key.
// It returns the value and an error, if any. // It returns the value and an error, if any.

View File

@ -5,6 +5,7 @@
package os package os
import ( import (
"errors"
"runtime" "runtime"
"syscall" "syscall"
) )
@ -17,7 +18,7 @@ func (p *Process) Wait(options int) (w *Waitmsg, err error) {
case syscall.WAIT_FAILED: case syscall.WAIT_FAILED:
return nil, NewSyscallError("WaitForSingleObject", e) return nil, NewSyscallError("WaitForSingleObject", e)
default: default:
return nil, NewError("os: unexpected result from WaitForSingleObject") return nil, errors.New("os: unexpected result from WaitForSingleObject")
} }
var ec uint32 var ec uint32
e = syscall.GetExitCodeProcess(syscall.Handle(p.handle), &ec) e = syscall.GetExitCodeProcess(syscall.Handle(p.handle), &ec)
@ -31,7 +32,7 @@ func (p *Process) Wait(options int) (w *Waitmsg, err error) {
// Signal sends a signal to the Process. // Signal sends a signal to the Process.
func (p *Process) Signal(sig Signal) error { func (p *Process) Signal(sig Signal) error {
if p.done { if p.done {
return NewError("os: process already finished") return errors.New("os: process already finished")
} }
switch sig.(UnixSignal) { switch sig.(UnixSignal) {
case SIGKILL: case SIGKILL:

View File

@ -8,15 +8,10 @@ import (
"sync" "sync"
) )
// An Error can represent any printable error condition.
type Error interface {
String() string
}
// Errno is the Windows error number. // Errno is the Windows error number.
type Errno uint64 type Errno uint64
func (e Errno) String() string { return Errstr(int(e)) } func (e Errno) Error() string { return Errstr(int(e)) }
// DLLError describes reasons for DLL load failures. // DLLError describes reasons for DLL load failures.
type DLLError struct { type DLLError struct {
@ -42,7 +37,7 @@ type DLL struct {
} }
// LoadDLL loads DLL file into memory. // LoadDLL loads DLL file into memory.
func LoadDLL(name string) (dll *DLL, err Error) { func LoadDLL(name string) (dll *DLL, err error) {
h, e := loadlibrary(StringToUTF16Ptr(name)) h, e := loadlibrary(StringToUTF16Ptr(name))
if e != 0 { if e != 0 {
return nil, &DLLError{ return nil, &DLLError{
@ -69,7 +64,7 @@ func MustLoadDLL(name string) *DLL {
// FindProc searches DLL d for procedure named name and returns *Proc // FindProc searches DLL d for procedure named name and returns *Proc
// if found. It returns an error if search fails. // if found. It returns an error if search fails.
func (d *DLL) FindProc(name string) (proc *Proc, err Error) { func (d *DLL) FindProc(name string) (proc *Proc, err error) {
a, e := getprocaddress(uintptr(d.Handle), StringBytePtr(name)) a, e := getprocaddress(uintptr(d.Handle), StringBytePtr(name))
if e != 0 { if e != 0 {
return nil, &DLLError{ return nil, &DLLError{
@ -160,7 +155,7 @@ type LazyDLL struct {
// Load loads DLL file d.Name into memory. It returns an error if fails. // Load loads DLL file d.Name into memory. It returns an error if fails.
// Load will not try to load DLL, if it is already loaded into memory. // Load will not try to load DLL, if it is already loaded into memory.
func (d *LazyDLL) Load() Error { func (d *LazyDLL) Load() error {
if d.dll == nil { if d.dll == nil {
d.mu.Lock() d.mu.Lock()
defer d.mu.Unlock() defer d.mu.Unlock()
@ -211,7 +206,7 @@ type LazyProc struct {
// Find searches DLL for procedure named p.Name. It returns // Find searches DLL for procedure named p.Name. It returns
// an error if search fails. Find will not search procedure, // an error if search fails. Find will not search procedure,
// if it is already found and loaded into memory. // if it is already found and loaded into memory.
func (p *LazyProc) Find() Error { func (p *LazyProc) Find() error {
if p.proc == nil { if p.proc == nil {
p.mu.Lock() p.mu.Lock()
defer p.mu.Unlock() defer p.mu.Unlock()