mirror of
https://github.com/golang/go
synced 2024-11-19 22:54:39 -07:00
internal/poll: only call SetFileCompletionNotificationModes for sockets
CL 36799 made SetFileCompletionNotificationModes to be called for file handles. I don't think it is correct. Revert that change. Fixes #22024 Fixes #22207 Change-Id: I26260e8a727131cffbf60958d79eca2457495554 Reviewed-on: https://go-review.googlesource.com/69871 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
c37647fc3a
commit
862fb86c6e
@ -357,12 +357,12 @@ func (fd *FD) Init(net string, pollable bool) (string, error) {
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if useSetFileCompletionNotificationModes {
|
||||
if pollable && useSetFileCompletionNotificationModes {
|
||||
// We do not use events, so we can skip them always.
|
||||
flags := uint8(syscall.FILE_SKIP_SET_EVENT_ON_HANDLE)
|
||||
// It's not safe to skip completion notifications for UDP:
|
||||
// http://blogs.technet.com/b/winserverperformance/archive/2008/06/26/designing-applications-for-high-performance-part-iii.aspx
|
||||
if net == "tcp" || net == "file" {
|
||||
if net == "tcp" {
|
||||
flags |= syscall.FILE_SKIP_COMPLETION_PORT_ON_SUCCESS
|
||||
}
|
||||
err := syscall.SetFileCompletionNotificationModes(fd.Sysfd, flags)
|
||||
|
Loading…
Reference in New Issue
Block a user