mirror of
https://github.com/golang/go.git
synced 2025-11-09 05:01:01 +00:00
net: separate pollster initialization from network file descriptor allocation
Unlike the existing net package own pollster, runtime-integrated network pollster on BSD variants, actually kqueue, requires a socket that has beed passed to syscall.Listen previously for a stream listener. This CL separates pollDesc.Init (actually runtime_pollOpen) from newFD to allow control of each state of sockets and adds init method to netFD instead. Upcoming CLs will rearrange the call order of runtime-integrated pollster and syscall functions like the following; - For dialers that open active connections, runtime_pollOpen will be called in between syscall.Bind and syscall.Connect. - For stream listeners that open passive stream connections, runtime_pollOpen will be called just after syscall.Listen. - For datagram listeners that open datagram connections, runtime_pollOpen will be called just after syscall.Bind. This is in preparation for runtime-integrated network pollster for BSD variants. Update #5199 R=dvyukov, alex.brainman, minux.ma CC=golang-dev https://golang.org/cl/8608044
This commit is contained in:
parent
33bd9694cd
commit
6a76bca362
5 changed files with 37 additions and 18 deletions
|
|
@ -67,6 +67,10 @@ func newFileFD(f *os.File) (*netFD, error) {
|
|||
closesocket(fd)
|
||||
return nil, err
|
||||
}
|
||||
if err := netfd.init(); err != nil {
|
||||
netfd.Close()
|
||||
return nil, err
|
||||
}
|
||||
netfd.setAddr(laddr, raddr)
|
||||
return netfd, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue