Based on my understanding, if we do not use IOSQE_ASYNC (meaning new worker threads won't spawned for each entry in submission entry) then the same thread which invokes io_uring_enter is expected to handle the entries in the submission Queue.
However, for network applications I am not sure why/when we need to set minComplete. Can we not just set it to 0 always and use the head and tail pointers of the completion Queue to determine if there are any entries and then process it. I think there are few use cases when it comes to disk IO but not sure if it is required for network IO.
Especially in case of thread-per-core models where it might be more fitting to set minComplete to 0.