diff options
Diffstat (limited to 'src/pkg/net/fd_darwin.go')
-rw-r--r-- | src/pkg/net/fd_darwin.go | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/src/pkg/net/fd_darwin.go b/src/pkg/net/fd_darwin.go index 74818581a..a33504f6e 100644 --- a/src/pkg/net/fd_darwin.go +++ b/src/pkg/net/fd_darwin.go @@ -7,46 +7,46 @@ package net import ( - "os"; - "syscall"; + "os" + "syscall" ) type pollster struct { - kq int; - eventbuf [10]syscall.Kevent_t; - events []syscall.Kevent_t; + kq int + eventbuf [10]syscall.Kevent_t + events []syscall.Kevent_t } func newpollster() (p *pollster, err os.Error) { - p = new(pollster); - var e int; + p = new(pollster) + var e int if p.kq, e = syscall.Kqueue(); e != 0 { return nil, os.NewSyscallError("kqueue", e) } - p.events = p.eventbuf[0:0]; - return p, nil; + p.events = p.eventbuf[0:0] + return p, nil } func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error { - var kmode int; + var kmode int if mode == 'r' { kmode = syscall.EVFILT_READ } else { kmode = syscall.EVFILT_WRITE } - var events [1]syscall.Kevent_t; - ev := &events[0]; + var events [1]syscall.Kevent_t + ev := &events[0] // EV_ADD - add event to kqueue list // EV_RECEIPT - generate fake EV_ERROR as result of add, // rather than waiting for real event // EV_ONESHOT - delete the event the first time it triggers - flags := syscall.EV_ADD | syscall.EV_RECEIPT; + flags := syscall.EV_ADD | syscall.EV_RECEIPT if !repeat { flags |= syscall.EV_ONESHOT } - syscall.SetKevent(ev, fd, kmode, flags); + syscall.SetKevent(ev, fd, kmode, flags) - n, e := syscall.Kevent(p.kq, &events, &events, nil); + n, e := syscall.Kevent(p.kq, &events, &events, nil) if e != 0 { return os.NewSyscallError("kevent", e) } @@ -56,55 +56,55 @@ func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error { if ev.Data != 0 { return os.Errno(int(ev.Data)) } - return nil; + return nil } func (p *pollster) DelFD(fd int, mode int) { - var kmode int; + var kmode int if mode == 'r' { kmode = syscall.EVFILT_READ } else { kmode = syscall.EVFILT_WRITE } - var events [1]syscall.Kevent_t; - ev := &events[0]; + var events [1]syscall.Kevent_t + ev := &events[0] // EV_DELETE - delete event from kqueue list // EV_RECEIPT - generate fake EV_ERROR as result of add, // rather than waiting for real event - syscall.SetKevent(ev, fd, kmode, syscall.EV_DELETE|syscall.EV_RECEIPT); - syscall.Kevent(p.kq, &events, &events, nil); + syscall.SetKevent(ev, fd, kmode, syscall.EV_DELETE|syscall.EV_RECEIPT) + syscall.Kevent(p.kq, &events, &events, nil) } func (p *pollster) WaitFD(nsec int64) (fd int, mode int, err os.Error) { - var t *syscall.Timespec; + var t *syscall.Timespec for len(p.events) == 0 { if nsec > 0 { if t == nil { t = new(syscall.Timespec) } - *t = syscall.NsecToTimespec(nsec); + *t = syscall.NsecToTimespec(nsec) } - nn, e := syscall.Kevent(p.kq, nil, &p.eventbuf, t); + nn, e := syscall.Kevent(p.kq, nil, &p.eventbuf, t) if e != 0 { if e == syscall.EINTR { continue } - return -1, 0, os.NewSyscallError("kevent", e); + return -1, 0, os.NewSyscallError("kevent", e) } if nn == 0 { return -1, 0, nil } - p.events = p.eventbuf[0:nn]; + p.events = p.eventbuf[0:nn] } - ev := &p.events[0]; - p.events = p.events[1:]; - fd = int(ev.Ident); + ev := &p.events[0] + p.events = p.events[1:] + fd = int(ev.Ident) if ev.Filter == syscall.EVFILT_READ { mode = 'r' } else { mode = 'w' } - return fd, mode, nil; + return fd, mode, nil } -func (p *pollster) Close() os.Error { return os.NewSyscallError("close", syscall.Close(p.kq)) } +func (p *pollster) Close() os.Error { return os.NewSyscallError("close", syscall.Close(p.kq)) } |