mode int32
// fields used only by net package
- buf syscall.WSABuf
- msg windows.WSAMsg
- sa syscall.Sockaddr
- rsa *syscall.RawSockaddrAny
- rsan int32
- handle syscall.Handle
- flags uint32
- qty uint32
- bufs []syscall.WSABuf
+ buf syscall.WSABuf
+ msg windows.WSAMsg
+ sa syscall.Sockaddr
+ rsa *syscall.RawSockaddrAny
+ rsan int32
+ flags uint32
+ qty uint32
+ bufs []syscall.WSABuf
}
func (o *operation) setEvent() {
func (fd *FD) acceptOne(s syscall.Handle, rawsa []syscall.RawSockaddrAny, o *operation) (string, error) {
// Submit accept request.
- o.handle = s
o.rsan = int32(unsafe.Sizeof(rawsa[0]))
_, err := fd.execIO(o, func(o *operation) error {
- return AcceptFunc(fd.Sysfd, o.handle, (*byte)(unsafe.Pointer(&rawsa[0])), 0, uint32(o.rsan), uint32(o.rsan), &o.qty, &o.o)
+ return AcceptFunc(fd.Sysfd, s, (*byte)(unsafe.Pointer(&rawsa[0])), 0, uint32(o.rsan), uint32(o.rsan), &o.qty, &o.o)
})
if err != nil {
CloseFunc(s)
const maxChunkSizePerCall = int64(0x7fffffff - 1)
o := &fd.wop
- o.handle = hsrc
for size > 0 {
chunkSize := maxChunkSizePerCall
if chunkSize > size {
n, err := fd.execIO(o, func(o *operation) error {
o.qty = uint32(chunkSize)
- return syscall.TransmitFile(fd.Sysfd, o.handle, o.qty, 0, &o.o, nil, syscall.TF_WRITE_BEHIND)
+ return syscall.TransmitFile(fd.Sysfd, hsrc, o.qty, 0, &o.o, nil, syscall.TF_WRITE_BEHIND)
})
if err != nil {
return written, err, written > 0