go get github.com/ii64/gouring
// setup
h, err := gouring.New(256, 0)
if err != nil { /*...*/ }
defer h.Close()
sqe := h.GetSQE()
b := []byte("io_uring!\n")
PrepWrite(sqe, 1, &b[0], len(b), 0)
submitted, err := h.SubmitAndWait(1)
if err != nil { /*...*/ }
println(submitted) // 1
var cqe *gouring.IoUringCqe
err = h.WaitCqe(&cqe)
if err != nil { /*...*/ } // check also EINTR
_ = cqe.UserData
_ = cqe.Res
_ = cqe.Flags
SQPOLL | non-SQPOLL |
---|---|