Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently concurrent io_uring instances can't really be used to send linked SQEs because another thread could call
push
in between one thread callingpush
twice. This PR adds a new function,push_multiple
, to allow pushing multiple SQEs atomically.Since it's not easy to pass in an arbitrary number of owned values to a function in Rust yet, I decided that it would be better to make
squeue::Entry
Copy
so that it wouldn't be inconsistent to take bothEntry
and&[Entry]
.And since we no longer need to return back ownership of theActually, after further thought I have decided to useEntry
when the queue is full, the push functions returnbool
s instead ofResult<(), Entry>
- although they could also returnResult<(), ()>
.Result<(), ()>
because it has more obvious semantics and it is#[must_use]
.