Skip to content

Some minor grammar fixes, make squeue's push functions consume each entry instead of cloning it, and make push_unchecked public #326

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
3 changes: 2 additions & 1 deletion examples/readme.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use io_uring::cqueue::EntryMarker;
use io_uring::{opcode, types, IoUring};
use std::os::unix::io::AsRawFd;
use std::{fs, io};
Expand All @@ -16,7 +17,7 @@ fn main() -> io::Result<()> {
// that the entry pushed into submission queue is valid (e.g. fd, buffer).
unsafe {
ring.submission()
.push(&read_e)
.push(read_e)
.expect("submission queue is full");
}

Expand Down
13 changes: 7 additions & 6 deletions examples/tcp_echo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use std::net::TcpListener;
use std::os::unix::io::{AsRawFd, RawFd};
use std::{io, ptr};

use io_uring::cqueue::EntryMarker;
use io_uring::{opcode, squeue, types, IoUring, SubmissionQueue};
use slab::Slab;

Expand Down Expand Up @@ -42,7 +43,7 @@ impl AcceptCount {
pub fn push_to(&mut self, sq: &mut SubmissionQueue<'_>) {
while self.count > 0 {
unsafe {
match sq.push(&self.entry) {
match sq.push(self.entry.clone()) {
Ok(_) => self.count -= 1,
Err(_) => break,
}
Expand Down Expand Up @@ -91,7 +92,7 @@ fn main() -> anyhow::Result<()> {

match backlog.pop_front() {
Some(sqe) => unsafe {
let _ = sq.push(&sqe);
let _ = sq.push(sqe);
},
None => break,
}
Expand Down Expand Up @@ -127,7 +128,7 @@ fn main() -> anyhow::Result<()> {
.user_data(poll_token as _);

unsafe {
if sq.push(&poll_e).is_err() {
if sq.push(poll_e.clone()).is_err() {
backlog.push_back(poll_e);
}
}
Expand All @@ -150,7 +151,7 @@ fn main() -> anyhow::Result<()> {
.user_data(token_index as _);

unsafe {
if sq.push(&read_e).is_err() {
if sq.push(read_e.clone()).is_err() {
backlog.push_back(read_e);
}
}
Expand Down Expand Up @@ -181,7 +182,7 @@ fn main() -> anyhow::Result<()> {
.user_data(token_index as _);

unsafe {
if sq.push(&write_e).is_err() {
if sq.push(write_e.clone()).is_err() {
backlog.push_back(write_e);
}
}
Expand Down Expand Up @@ -222,7 +223,7 @@ fn main() -> anyhow::Result<()> {
};

unsafe {
if sq.push(&entry).is_err() {
if sq.push(entry.clone()).is_err() {
backlog.push_back(entry);
}
}
Expand Down
10 changes: 5 additions & 5 deletions io-uring-bench/src/iovec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ fn bench_iovec(c: &mut Criterion) {

unsafe {
ring.submission()
.push(&entry.build())
.push(entry.build())
.expect("queue is full");
}

Expand Down Expand Up @@ -69,12 +69,12 @@ fn bench_iovec(c: &mut Criterion) {
unsafe {
let mut queue = ring.submission();
queue
.push(&entry.build().flags(squeue::Flags::IO_LINK))
.push(entry.build().flags(squeue::Flags::IO_LINK))
.expect("queue is full");
for _ in 0..4 {
let entry = opcode::Nop::new().build();
queue
.push(&entry.flags(squeue::Flags::IO_LINK))
.push(entry.flags(squeue::Flags::IO_LINK))
.expect("queue is full");
}
}
Expand All @@ -97,7 +97,7 @@ fn bench_iovec(c: &mut Criterion) {

unsafe {
queue
.push(&entry.build().flags(squeue::Flags::IO_LINK))
.push(entry.build().flags(squeue::Flags::IO_LINK))
.expect("queue is full");
}
}
Expand All @@ -121,7 +121,7 @@ fn bench_iovec(c: &mut Criterion) {

unsafe {
ring.submission()
.push(&entry.build())
.push(entry.build())
.expect("queue is full");
}

Expand Down
2 changes: 1 addition & 1 deletion io-uring-bench/src/nop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ fn bench_normal(c: &mut Criterion) {
let mut sq = io_uring.submission();
while queue.want() {
unsafe {
match sq.push(&black_box(opcode::Nop::new()).build()) {
match sq.push(black_box(opcode::Nop::new()).build()) {
Ok(_) => queue.pop(),
Err(_) => break,
}
Expand Down
11 changes: 6 additions & 5 deletions io-uring-test/src/tests/cancel.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use crate::Test;
use io_uring::cqueue::EntryMarker;
use io_uring::types::CancelBuilder;
use io_uring::{cqueue, opcode, squeue, types, IoUring};
use std::fs::File;
Expand Down Expand Up @@ -29,7 +30,7 @@ pub fn test_async_cancel_user_data<S: squeue::EntryMarker, C: cqueue::EntryMarke
timeout_e.user_data(2003).into(),
cancel_e.user_data(2004).into(),
];
for sqe in &entries {
for sqe in entries.clone() {
unsafe {
ring.submission().push(sqe).expect("queue is full");
}
Expand Down Expand Up @@ -78,7 +79,7 @@ pub fn test_async_cancel_user_data_all<S: squeue::EntryMarker, C: cqueue::EntryM
timeout_e.user_data(2003).into(),
cancel_e.user_data(2004).into(),
];
for sqe in &entries {
for sqe in entries.clone() {
unsafe {
ring.submission().push(sqe).expect("queue is full");
}
Expand Down Expand Up @@ -129,7 +130,7 @@ pub fn test_async_cancel_any<S: squeue::EntryMarker, C: cqueue::EntryMarker>(
timeout_e.user_data(2004).into(),
cancel_e.user_data(2005).into(),
];
for sqe in &entries {
for sqe in entries.clone() {
unsafe {
ring.submission().push(sqe).expect("queue is full");
}
Expand Down Expand Up @@ -179,7 +180,7 @@ pub fn test_async_cancel_fd<S: squeue::EntryMarker, C: cqueue::EntryMarker>(
poll_e.user_data(2003).into(),
cancel_e.user_data(2004).into(),
];
for sqe in &entries {
for sqe in entries.clone() {
unsafe {
ring.submission().push(sqe).expect("queue is full");
}
Expand Down Expand Up @@ -229,7 +230,7 @@ pub fn test_async_cancel_fd_all<S: squeue::EntryMarker, C: cqueue::EntryMarker>(
poll_e.user_data(2004).into(),
cancel_e.user_data(2005).into(),
];
for sqe in &entries {
for sqe in entries.clone() {
unsafe {
ring.submission().push(sqe).expect("queue is full");
}
Expand Down
Loading