| // 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. | |
| //go: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 | |
| } | |