| // Copyright 2019 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // +build windows |
| |
| package poll |
| |
| import "syscall" |
| |
| // Do the interface allocations only once for common |
| // Errno values. |
| |
| var ( |
| errERROR_IO_PENDING error = syscall.Errno(syscall.ERROR_IO_PENDING) |
| ) |
| |
| // ErrnoErr returns common boxed Errno values, to prevent |
| // allocations at runtime. |
| func errnoErr(e syscall.Errno) error { |
| switch e { |
| case 0: |
| return nil |
| case syscall.ERROR_IO_PENDING: |
| return errERROR_IO_PENDING |
| } |
| // TODO: add more here, after collecting data on the common |
| // error values see on Windows. (perhaps when running |
| // all.bat?) |
| return e |
| } |