Hi, I am trying to experiment with the interface for registering files and buffers. (almost) Every time I call io_uring_register with those opcodes, my application hangs. It's easy to see the reason. I am blocking here: mutex_unlock(&ctx->uring_lock); ret = wait_for_completion_interruptible(&ctx->completions[0]); mutex_lock(&ctx->uring_lock); Am I right in my understanding that this is waiting for everything that was submitted to complete? Some things in my ring may never complete: for instance one may be polling for file descriptors that may never really become ready. This sounds a bit too restrictive to me. Is this really the intended use of the interface?