// 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 unix | |
package poll | |
import "syscall" | |
// Do the interface allocations only once for common | |
// Errno values. | |
var ( | |
errEAGAIN error = syscall.EAGAIN | |
errEINVAL error = syscall.EINVAL | |
errENOENT error = syscall.ENOENT | |
) | |
// 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.EAGAIN: | |
return errEAGAIN | |
case syscall.EINVAL: | |
return errEINVAL | |
case syscall.ENOENT: | |
return errENOENT | |
} | |
return e | |
} |