@@ -13,8 +13,8 @@ use result::{Ok, Err};
1313use io:: net:: ip:: SocketAddr ;
1414use io:: { Reader , Writer , Listener , Acceptor } ;
1515use io:: { io_error, EndOfFile } ;
16- use rt:: rtio:: { IoFactory , with_local_io ,
17- RtioSocket , RtioTcpListener , RtioTcpAcceptor , RtioTcpStream } ;
16+ use rt:: rtio:: { IoFactory , LocalIo , RtioSocket , RtioTcpListener } ;
17+ use rt :: rtio :: { RtioTcpAcceptor , RtioTcpStream } ;
1818
1919pub struct TcpStream {
2020 priv obj: ~RtioTcpStream
@@ -26,15 +26,17 @@ impl TcpStream {
2626 }
2727
2828 pub fn connect ( addr : SocketAddr ) -> Option < TcpStream > {
29- with_local_io ( |io| {
30- match io. tcp_connect ( addr) {
31- Ok ( s) => Some ( TcpStream :: new ( s) ) ,
32- Err ( ioerr) => {
33- io_error:: cond. raise ( ioerr) ;
34- None
35- }
29+ let result = {
30+ let mut io = LocalIo :: borrow ( ) ;
31+ io. get ( ) . tcp_connect ( addr)
32+ } ;
33+ match result {
34+ Ok ( s) => Some ( TcpStream :: new ( s) ) ,
35+ Err ( ioerr) => {
36+ io_error:: cond. raise ( ioerr) ;
37+ None
3638 }
37- } )
39+ }
3840 }
3941
4042 pub fn peer_name ( & mut self ) -> Option < SocketAddr > {
@@ -92,15 +94,14 @@ pub struct TcpListener {
9294
9395impl TcpListener {
9496 pub fn bind ( addr : SocketAddr ) -> Option < TcpListener > {
95- with_local_io ( |io| {
96- match io. tcp_bind ( addr) {
97- Ok ( l) => Some ( TcpListener { obj : l } ) ,
98- Err ( ioerr) => {
99- io_error:: cond. raise ( ioerr) ;
100- None
101- }
97+ let mut io = LocalIo :: borrow ( ) ;
98+ match io. get ( ) . tcp_bind ( addr) {
99+ Ok ( l) => Some ( TcpListener { obj : l } ) ,
100+ Err ( ioerr) => {
101+ io_error:: cond. raise ( ioerr) ;
102+ None
102103 }
103- } )
104+ }
104105 }
105106
106107 pub fn socket_name ( & mut self ) -> Option < SocketAddr > {
0 commit comments