Skip to content

Commit d18e860

Browse files
committed
Update for upstream TCP listening changes.
(The changes come from rust-lang/rust#8954.)
1 parent 5b4f4fa commit d18e860

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

src/libhttp/server/mod.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ extern mod extra;
33
use std::cell::Cell;
44
use std::comm::SharedChan;
55
use std::task::{spawn_with, spawn_supervised};
6-
use std::rt::io::{Listener, Writer};
6+
use std::rt::io::{Listener, Acceptor, Writer};
77
use std::rt::io::net::ip::SocketAddr;
88
use std::rt::io::io_error;
99
use extra::time::precise_time_ns;
@@ -45,26 +45,24 @@ impl<T: Send + Clone + Server> ServerUtil for T {
4545
fn serve_forever(self) {
4646
let config = self.get_config();
4747
debug!("About to bind to %?", config.bind_address);
48-
let mut optlistener = TcpListener::bind(config.bind_address);
49-
debug!("Bind attempt completed");
50-
let (perf_po, perf_ch) = stream();
51-
let perf_ch = SharedChan::new(perf_ch);
52-
spawn_with(perf_po, perf_dumper);
53-
match optlistener {
48+
match TcpListener::bind(config.bind_address).listen() {
5449
None => {
55-
debug!("listen failed :-(");
50+
error!("bind or listen failed :-(");
5651
return;
57-
}
58-
Some(ref mut listener) => {
52+
},
53+
Some(ref mut acceptor) => {
5954
debug!("listening");
55+
let (perf_po, perf_ch) = stream();
56+
let perf_ch = SharedChan::new(perf_ch);
57+
spawn_with(perf_po, perf_dumper);
6058
loop {
6159
// OK, we're sort of shadowing an IoError here. Perhaps this should be done in a
6260
// separate task so that it can safely fail...
6361
let mut error = None;
6462
let optstream = io_error::cond.trap(|e| {
6563
error = Some(e);
6664
}).inside(|| {
67-
listener.accept()
65+
acceptor.accept()
6866
});
6967

7068
let time_start = precise_time_ns();

0 commit comments

Comments
 (0)