summaryrefslogtreecommitdiffhomepage
path: root/net/uring/io_uring_linux.go
diff options
context:
space:
mode:
Diffstat (limited to 'net/uring/io_uring_linux.go')
-rw-r--r--net/uring/io_uring_linux.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/net/uring/io_uring_linux.go b/net/uring/io_uring_linux.go
index 1e72ad6c4..2c34f4a00 100644
--- a/net/uring/io_uring_linux.go
+++ b/net/uring/io_uring_linux.go
@@ -71,6 +71,24 @@ type UDPConn struct {
reads int32
}
+var (
+ mu sync.Mutex
+ // checks capabilities available on this system
+ capabilities map[IORingOp]bool
+)
+
+func checkCapability(op IORingOp) bool {
+ mu.Lock()
+ defer mu.Unlock()
+ if v, ok := capabilities[op]; ok {
+ return v
+ }
+
+ has_op := C.has_capability(C.int(op)) == 1
+ capabilities[op] = has_op
+ return has_op
+}
+
func NewUDPConn(pconn net.PacketConn) (*UDPConn, error) {
if !*useIOURing {
return nil, DisabledError