diff options
Diffstat (limited to 'src/pkg/net/fd_linux.go')
| -rw-r--r-- | src/pkg/net/fd_linux.go | 80 | 
1 files changed, 40 insertions, 40 deletions
| diff --git a/src/pkg/net/fd_linux.go b/src/pkg/net/fd_linux.go index 83d66ac89..5024eec02 100644 --- a/src/pkg/net/fd_linux.go +++ b/src/pkg/net/fd_linux.go @@ -7,25 +7,25 @@  package net  import ( -	"os"; -	"syscall"; +	"os" +	"syscall"  )  const ( -	readFlags	= syscall.EPOLLIN | syscall.EPOLLRDHUP; -	writeFlags	= syscall.EPOLLOUT; +	readFlags  = syscall.EPOLLIN | syscall.EPOLLRDHUP +	writeFlags = syscall.EPOLLOUT  )  type pollster struct { -	epfd	int; +	epfd int  	// Events we're already waiting for -	events	map[int]uint32; +	events map[int]uint32  }  func newpollster() (p *pollster, err os.Error) { -	p = new(pollster); -	var e int; +	p = new(pollster) +	var e int  	// The arg to epoll_create is a hint to the kernel  	// about the number of FDs we will care about. @@ -33,15 +33,15 @@ func newpollster() (p *pollster, err os.Error) {  	if p.epfd, e = syscall.EpollCreate(16); e != 0 {  		return nil, os.NewSyscallError("epoll_create", e)  	} -	p.events = make(map[int]uint32); -	return p, nil; +	p.events = make(map[int]uint32) +	return p, nil  }  func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error { -	var ev syscall.EpollEvent; -	var already bool; -	ev.Fd = int32(fd); -	ev.Events, already = p.events[fd]; +	var ev syscall.EpollEvent +	var already bool +	ev.Fd = int32(fd) +	ev.Events, already = p.events[fd]  	if !repeat {  		ev.Events |= syscall.EPOLLONESHOT  	} @@ -51,7 +51,7 @@ func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error {  		ev.Events |= writeFlags  	} -	var op int; +	var op int  	if already {  		op = syscall.EPOLL_CTL_MOD  	} else { @@ -60,15 +60,15 @@ func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error {  	if e := syscall.EpollCtl(p.epfd, op, fd, &ev); e != 0 {  		return os.NewSyscallError("epoll_ctl", e)  	} -	p.events[fd] = ev.Events; -	return nil; +	p.events[fd] = ev.Events +	return nil  }  func (p *pollster) StopWaiting(fd int, bits uint) { -	events, already := p.events[fd]; +	events, already := p.events[fd]  	if !already { -		print("Epoll unexpected fd=", fd, "\n"); -		return; +		print("Epoll unexpected fd=", fd, "\n") +		return  	}  	// If syscall.EPOLLONESHOT is not set, the wait @@ -80,20 +80,20 @@ func (p *pollster) StopWaiting(fd int, bits uint) {  	// Disable the given bits.  	// If we're still waiting for other events, modify the fd  	// event in the kernel.  Otherwise, delete it. -	events &= ^uint32(bits); +	events &= ^uint32(bits)  	if int32(events)&^syscall.EPOLLONESHOT != 0 { -		var ev syscall.EpollEvent; -		ev.Fd = int32(fd); -		ev.Events = events; +		var ev syscall.EpollEvent +		ev.Fd = int32(fd) +		ev.Events = events  		if e := syscall.EpollCtl(p.epfd, syscall.EPOLL_CTL_MOD, fd, &ev); e != 0 {  			print("Epoll modify fd=", fd, ": ", os.Errno(e).String(), "\n")  		} -		p.events[fd] = events; +		p.events[fd] = events  	} else {  		if e := syscall.EpollCtl(p.epfd, syscall.EPOLL_CTL_DEL, fd, nil); e != 0 {  			print("Epoll delete fd=", fd, ": ", os.Errno(e).String(), "\n")  		} -		p.events[fd] = 0, false; +		p.events[fd] = 0, false  	}  } @@ -107,13 +107,13 @@ func (p *pollster) DelFD(fd int, mode int) {  func (p *pollster) WaitFD(nsec int64) (fd int, mode int, err os.Error) {  	// Get an event. -	var evarray [1]syscall.EpollEvent; -	ev := &evarray[0]; -	var msec int = -1; +	var evarray [1]syscall.EpollEvent +	ev := &evarray[0] +	var msec int = -1  	if nsec > 0 {  		msec = int((nsec + 1e6 - 1) / 1e6)  	} -	n, e := syscall.EpollWait(p.epfd, &evarray, msec); +	n, e := syscall.EpollWait(p.epfd, &evarray, msec)  	for e == syscall.EAGAIN || e == syscall.EINTR {  		n, e = syscall.EpollWait(p.epfd, &evarray, msec)  	} @@ -123,25 +123,25 @@ func (p *pollster) WaitFD(nsec int64) (fd int, mode int, err os.Error) {  	if n == 0 {  		return -1, 0, nil  	} -	fd = int(ev.Fd); +	fd = int(ev.Fd)  	if ev.Events&writeFlags != 0 { -		p.StopWaiting(fd, writeFlags); -		return fd, 'w', nil; +		p.StopWaiting(fd, writeFlags) +		return fd, 'w', nil  	}  	if ev.Events&readFlags != 0 { -		p.StopWaiting(fd, readFlags); -		return fd, 'r', nil; +		p.StopWaiting(fd, readFlags) +		return fd, 'r', nil  	}  	// Other events are error conditions - wake whoever is waiting. -	events, _ := p.events[fd]; +	events, _ := p.events[fd]  	if events&writeFlags != 0 { -		p.StopWaiting(fd, writeFlags); -		return fd, 'w', nil; +		p.StopWaiting(fd, writeFlags) +		return fd, 'w', nil  	} -	p.StopWaiting(fd, readFlags); -	return fd, 'r', nil; +	p.StopWaiting(fd, readFlags) +	return fd, 'r', nil  }  func (p *pollster) Close() os.Error { | 
