It's not the async part, it's the not invoking the function part - io_uring replaces syscalls with producer consumer ring buffers.