]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.9] internal/poll: only call SetFileCompletionNotificationModes...
authorAlex Brainman <alex.brainman@gmail.com>
Wed, 11 Oct 2017 07:23:30 +0000 (18:23 +1100)
committerRuss Cox <rsc@golang.org>
Wed, 25 Oct 2017 20:23:32 +0000 (20:23 +0000)
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>
Reviewed-on: https://go-review.googlesource.com/70990
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
src/internal/poll/fd_windows.go

index 2927463eeeb2ac187e6bed5f0f65994e7556b7eb..27fef04be05c69bd80cf8b79d253c5d00e474808 100644 (file)
@@ -354,12 +354,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)