}
func (fd *netFD) Read(p []byte) (n int, err os.Error) {
- if fd == nil || fd.sysfile == nil {
+ if fd == nil {
return 0, os.EINVAL
}
fd.rio.Lock()
defer fd.rio.Unlock()
fd.incref()
defer fd.decref()
+ if fd.sysfile == nil {
+ return 0, os.EINVAL
+ }
if fd.rdeadline_delta > 0 {
fd.rdeadline = pollserver.Now() + fd.rdeadline_delta
} else {
}
func (fd *netFD) Write(p []byte) (n int, err os.Error) {
- if fd == nil || fd.sysfile == nil {
+ if fd == nil {
return 0, os.EINVAL
}
fd.wio.Lock()
defer fd.wio.Unlock()
fd.incref()
defer fd.decref()
+ if fd.sysfile == nil {
+ return 0, os.EINVAL
+ }
if fd.wdeadline_delta > 0 {
fd.wdeadline = pollserver.Now() + fd.wdeadline_delta
} else {
}
nn := 0
var oserr os.Error
+
for {
n, errno := syscall.Write(fd.sysfile.Fd(), p[nn:])
if n > 0 {