]> Cypherpunks repositories - gostls13.git/commitdiff
Add an accessor function os.FD.Fd() to get the file
authorIan Lance Taylor <iant@golang.org>
Mon, 26 Jan 2009 19:10:14 +0000 (11:10 -0800)
committerIan Lance Taylor <iant@golang.org>
Mon, 26 Jan 2009 19:10:14 +0000 (11:10 -0800)
descriptor.  Use it in the PollServer code.

6g currently accepts this code without this change, but it
should not.  Test case for the bug is bug133.go.

R=rsc
DELTA=10  (0 added, 0 deleted, 10 changed)
OCL=23451
CL=23486

src/lib/net/fd.go
src/lib/os/os_file.go

index ce18ccabb2c6fa3e62aee853bb30cfdb173914a3..2b126843bd9913d61effe16d4947f3c7e3d08a11 100644 (file)
@@ -84,19 +84,19 @@ func _NewPollServer() (s *_PollServer, err *os.Error) {
        if s.pr, s.pw, err = os.Pipe(); err != nil {
                return nil, err
        }
-       if err = _SetNonblock(s.pr.fd); err != nil {
+       if err = _SetNonblock(s.pr.Fd); err != nil {
        Error:
                s.pr.Close();
                s.pw.Close();
                return nil, err
        }
-       if err = _SetNonblock(s.pw.fd); err != nil {
+       if err = _SetNonblock(s.pw.Fd); err != nil {
                goto Error
        }
        if s.poll, err = NewPollster(); err != nil {
                goto Error
        }
-       if err = s.poll.AddFD(s.pr.fd, 'r', true); err != nil {
+       if err = s.poll.AddFD(s.pr.Fd, 'r', true); err != nil {
                s.poll.Close();
                goto Error
        }
@@ -142,7 +142,7 @@ func (s *_PollServer) Run() {
                        print("_PollServer WaitFD: ", err.String(), "\n");
                        return
                }
-               if fd == s.pr.fd {
+               if fd == s.pr.Fd {
                        // Drain our wakeup pipe.
                        for nn, e := s.pr.Read(scratch); nn > 0; {
                                nn, e = s.pr.Read(scratch)
index 71fbbec9cf24bb8c1237cdd4a025c936e46c8bb1..6c516ff76f548cacf708614f32dddc49f49fb6bf 100644 (file)
@@ -9,7 +9,7 @@ import os "os"
 
 // FDs are wrappers for file descriptors
 type FD struct {
-       fd int64
+       Fd int64
 }
 
 func NewFD(fd int64) *FD {
@@ -48,8 +48,8 @@ func (fd *FD) Close() *Error {
        if fd == nil {
                return EINVAL
        }
-       r, e := syscall.Close(fd.fd);
-       fd.fd = -1;  // so it can't be closed again
+       r, e := syscall.Close(fd.Fd);
+       fd.Fd = -1;  // so it can't be closed again
        return ErrnoToError(e)
 }
 
@@ -59,7 +59,7 @@ func (fd *FD) Read(b []byte) (ret int, err *Error) {
        }
        var r, e int64;
        if len(b) > 0 {  // because we access b[0]
-               r, e = syscall.Read(fd.fd, &b[0], int64(len(b)));
+               r, e = syscall.Read(fd.Fd, &b[0], int64(len(b)));
                if r < 0 {
                        r = 0
                }
@@ -73,7 +73,7 @@ func (fd *FD) Write(b []byte) (ret int, err *Error) {
        }
        var r, e int64;
        if len(b) > 0 {  // because we access b[0]
-               r, e = syscall.Write(fd.fd, &b[0], int64(len(b)));
+               r, e = syscall.Write(fd.Fd, &b[0], int64(len(b)));
                if r < 0 {
                        r = 0
                }
@@ -89,7 +89,7 @@ func (fd *FD) WriteString(s string) (ret int, err *Error) {
        if !syscall.StringToBytes(b, s) {
                return 0, EINVAL
        }
-       r, e := syscall.Write(fd.fd, &b[0], int64(len(s)));
+       r, e := syscall.Write(fd.Fd, &b[0], int64(len(s)));
        if r < 0 {
                r = 0
        }