llam 0.1.3

Safe, Go-style Rust bindings for the LLAM runtime
use std::io::{Read, Write};

#[llam::main(profile = "io_latency")]
fn main() -> llam::Result<()> {
    let listener = llam::net::TcpListener::bind("127.0.0.1:9090")?;
    println!("LLAM-rs echo listening on 127.0.0.1:9090");

    loop {
        let (mut stream, _) = listener.accept()?;
        llam::spawn!(move {
            let mut buf = [0u8; 4096];
            loop {
                let n = match stream.read(&mut buf) {
                    Ok(0) => break,
                    Ok(n) => n,
                    Err(_) => break,
                };
                if stream.write_all(&buf[..n]).is_err() {
                    break;
                }
            }
        });
    }
}