https://bugs.winehq.org/show_bug.cgi?id=38960 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|STAGED |RESOLVED Fixed by SHA1| |139cc95610d7c14a5eab62df971 | |fe5505b0b067c Resolution|--- |FIXED --- Comment #82 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, most of the applications listed/referenced here are now fixed with recent commits. I've tested some dupes. * https://source.winehq.org/git/wine.git/commitdiff/139cc95610d7c14a5eab62df97... ("kernel32: Add SetFileCompletionNotificationModes implementation.") * https://source.winehq.org/git/wine.git/commitdiff/18e074b0f30e8067c090197930... ("server: Support FILE_SKIP_COMPLETION_PORT_ON_SUCCESS on client-side asyncs.") * https://source.winehq.org/git/wine.git/commitdiff/c0996553a1d9056e1b89871fc8... ("server: Support FILE_SKIP_COMPLETION_PORT_ON_SUCCESS on server-side asyncs.") * https://source.winehq.org/git/wine.git/commitdiff/2f17e0112dc0af3f0b246cf377... ("ntdll: Add setting FileIoCompletionNotificationInformation implementation.") Thanks Sebastian, Jacek, Alistair, Zebediah There are still use-cases (apps) where special mode flags are not supported, such as 'FILE_SKIP_SET_EVENT_ON_HANDLE': https://golang.org/src/internal/poll/fd_windows.go?#L381 --- snip --- ... 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: // https://blogs.technet.com/b/winserverperformance/archive/2008/06/26/designin... if net == "tcp" { flags |= syscall.FILE_SKIP_COMPLETION_PORT_ON_SUCCESS } err := syscall.SetFileCompletionNotificationModes(fd.Sysfd, flags) if err == nil && flags&syscall.FILE_SKIP_COMPLETION_PORT_ON_SUCCESS != 0 { fd.skipSyncNotif = true } } // Disable SIO_UDP_CONNRESET behavior. // http://support.microsoft.com/kb/263823 switch net { case "udp", "udp4", "udp6": ret := uint32(0) flag := uint32(0) size := uint32(unsafe.Sizeof(flag)) err := syscall.WSAIoctl(fd.Sysfd, syscall.SIO_UDP_CONNRESET, (*byte)(unsafe.Pointer(&flag)), size, nil, 0, &ret, nil, 0) if err != nil { return "wsaioctl", err } } ... ---- snip --- (also Steam client) They deserve a separate ticket. $ wine --version wine-3.18-218-g13cdcdae1a Regards -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.