1
0
mirror of https://github.com/golang/go synced 2024-11-23 06:40:05 -07:00

net: document caveats for (*syscall.RawConn).Write on Windows

Change-Id: I6e1fa67dc9d4d151c90eb19a6f736e4daa7d4fb3
Reviewed-on: https://go-review.googlesource.com/107615
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Aman Gupta 2018-04-17 14:28:00 -07:00 committed by Ian Lance Taylor
parent d487488135
commit f6ca6eddaa
2 changed files with 12 additions and 4 deletions

View File

@ -946,11 +946,13 @@ func (fd *FD) RawWrite(f func(uintptr) bool) error {
return err
}
defer fd.writeUnlock()
for {
if f(uintptr(fd.Sysfd)) {
return nil
}
if f(uintptr(fd.Sysfd)) {
return nil
}
// TODO(tmm1): find a way to detect socket writability
return syscall.EWINDOWS
}
func sockaddrToRaw(sa syscall.Sockaddr) (unsafe.Pointer, int32, error) {

View File

@ -9,6 +9,12 @@ import (
"syscall"
)
// BUG(tmm1): On Windows, the Write method of syscall.RawConn
// does not integrate with the runtime's network poller. It cannot
// wait for the connection to become writeable, and does not respect
// deadlines. If the user-provided callback returns false, the Write
// method will fail immediately.
// BUG(mikio): On NaCl and Plan 9, the Control, Read and Write methods
// of syscall.RawConn are not implemented.