X-Git-Url: http://git.euphorik.ch/?p=crypto_lab1.git;a=blobdiff_plain;f=lab1_rust%2Fsrc%2Fend_point.rs;fp=lab1_rust%2Fsrc%2Fend_point.rs;h=d2cedcb9ff2e511079eee11e6b6d021020e8ea0c;hp=97104c686e6118eec4a142a0a3ff174679208ef6;hb=a8641e8dd205140af9206e82169ff5ad107c23f8;hpb=63bf602df7a7a6e584c1479c1496e12a96fabcd0 diff --git a/lab1_rust/src/end_point.rs b/lab1_rust/src/end_point.rs index 97104c6..d2cedcb 100644 --- a/lab1_rust/src/end_point.rs +++ b/lab1_rust/src/end_point.rs @@ -1,6 +1,7 @@ use std::io; use std::io::{ MemWriter, Acceptor, Listener, TcpStream, IoResult, IoError, EndOfFile }; use std::io::net::tcp::{ TcpAcceptor, TcpListener }; +use std::thread::Thread; use packet; use packet::{ Packet, ReadingResult, PacketType }; use packet::PacketType::{ Command, Answer, Error }; @@ -30,18 +31,19 @@ impl Server { acceptor: acceptor.clone() }; - spawn(proc() { + Thread::spawn(move || { loop { for stream in acceptor.incoming() { match stream { - Ok(stream) => spawn(proc() { - Server::handle_client(EndPoint::new(stream, variant)); - }), + Ok(stream) => + Thread::spawn(move || { + Server::handle_client(EndPoint::new(stream, variant)); + }).detach(), _ => return } } } - }); + }).detach(); Ok(server) } @@ -236,7 +238,7 @@ impl Client { let mut nb_test_passed = 0; for (i, test) in range(1, tests.len()+1).zip(tests.iter_mut()) { - println!("===== Test case #{}:", i) + println!("===== Test case #{}:", i); if execute(test) { nb_test_passed += 1; println!("===== Test passed");