#io-uring troubles

4 messages · Page 1 of 1 (latest)

sweet zinc
#

Hey!

use io_uring::{IoUring, Probe, opcode, types::Fd};
use std::{net::TcpListener, os::fd::AsRawFd};

const ENTRIES: u32 = 256;

fn main() -> anyhow::Result<()> {
    let mut ring = IoUring::new(ENTRIES)?;
    let (submitter, mut submissions, mut completions) = ring.split();
    let socket = TcpListener::bind("127.0.0.1:3456")?;
    println!("Listening at {}", socket.local_addr()?);

    let mut probe = Probe::new();
    submitter.register_probe(&mut probe)?;
    dbg!(probe.is_supported(opcode::AcceptMulti::CODE));

    unsafe { submissions.push(&opcode::AcceptMulti::new(Fd(socket.as_raw_fd())).build()) }?;
    submitter.submit_and_wait(1)?;
    println!("Connected");

    let buffer = b"Hello World!\n";
    unsafe {
        submissions.push(
            &opcode::Send::new(
                Fd(completions.next().unwrap().result()),
                buffer.as_ptr(),
                buffer.len() as u32,
            )
            .build(),
        )
    }?;
    submitter.submit()?;

    std::hint::black_box(socket);
    Ok(())
}```

This code is getting stuck in the submit_and_wait. I'm connecting using netcat. The probe returns true.
livid nest
sweet zinc
#

yeah, forgot to sync

#

already fixed it in a telegram chat