mirror of
https://github.com/golang/go.git
synced 2025-11-09 05:01:01 +00:00
net: refactor poller into new internal/poll package
This will make it possible to use the poller with the os package. This is a lot of code movement but the behavior is intended to be unchanged. Update #6817. Update #7903. Update #15021. Update #18507. Change-Id: I1413685928017c32df5654ded73a2643820977ae Reviewed-on: https://go-review.googlesource.com/36799 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
b548eee3d9
commit
3792db5183
79 changed files with 2722 additions and 1619 deletions
|
|
@ -7,6 +7,7 @@
|
|||
package net
|
||||
|
||||
import (
|
||||
"internal/poll"
|
||||
"os"
|
||||
"syscall"
|
||||
)
|
||||
|
|
@ -17,7 +18,7 @@ func dupSocket(f *os.File) (int, error) {
|
|||
return -1, err
|
||||
}
|
||||
if err := syscall.SetNonblock(s, true); err != nil {
|
||||
closeFunc(s)
|
||||
poll.CloseFunc(s)
|
||||
return -1, os.NewSyscallError("setnonblock", err)
|
||||
}
|
||||
return s, nil
|
||||
|
|
@ -31,7 +32,7 @@ func newFileFD(f *os.File) (*netFD, error) {
|
|||
family := syscall.AF_UNSPEC
|
||||
sotype, err := syscall.GetsockoptInt(s, syscall.SOL_SOCKET, syscall.SO_TYPE)
|
||||
if err != nil {
|
||||
closeFunc(s)
|
||||
poll.CloseFunc(s)
|
||||
return nil, os.NewSyscallError("getsockopt", err)
|
||||
}
|
||||
lsa, _ := syscall.Getsockname(s)
|
||||
|
|
@ -44,12 +45,12 @@ func newFileFD(f *os.File) (*netFD, error) {
|
|||
case *syscall.SockaddrUnix:
|
||||
family = syscall.AF_UNIX
|
||||
default:
|
||||
closeFunc(s)
|
||||
poll.CloseFunc(s)
|
||||
return nil, syscall.EPROTONOSUPPORT
|
||||
}
|
||||
fd, err := newFD(s, family, sotype, "")
|
||||
if err != nil {
|
||||
closeFunc(s)
|
||||
poll.CloseFunc(s)
|
||||
return nil, err
|
||||
}
|
||||
laddr := fd.addrFunc()(lsa)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue