Skip to content

Commit da4b376

Browse files
committed
std: Stop using oldcomm
1 parent 87acde8 commit da4b376

File tree

8 files changed

+429
-449
lines changed

8 files changed

+429
-449
lines changed

src/libstd/arc.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,6 @@ mod tests {
483483
use arc::*;
484484
use arc;
485485

486-
use core::oldcomm::*;
487486
use core::option::{Some, None};
488487
use core::option;
489488
use core::pipes;

src/libstd/c_vec.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
#[forbid(deprecated_mode)];
3939

4040
use core::libc;
41-
use core::oldcomm;
4241
use core::option;
4342
use core::prelude::*;
4443
use core::ptr;

src/libstd/net_ip.rs

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
#[forbid(deprecated_mode)];
1313

1414
use core::libc;
15-
use core::oldcomm;
1615
use core::prelude::*;
16+
use core::pipes::{stream, SharedChan};
1717
use core::ptr;
1818
use core::result;
1919
use core::str;
@@ -113,40 +113,40 @@ enum IpGetAddrErr {
113113
* A `result<~[ip_addr], ip_get_addr_err>` instance that will contain
114114
* a vector of `ip_addr` results, in the case of success, or an error
115115
* object in the case of failure
116-
*/
116+
*/
117117
pub fn get_addr(node: &str, iotask: &iotask)
118-
-> result::Result<~[IpAddr], IpGetAddrErr> {
119-
do oldcomm::listen |output_ch| {
120-
do str::as_buf(node) |node_ptr, len| {
121-
unsafe {
122-
log(debug, fmt!("slice len %?", len));
123-
let handle = create_uv_getaddrinfo_t();
124-
let handle_ptr = ptr::addr_of(&handle);
125-
let handle_data = GetAddrData {
126-
output_ch: output_ch
127-
};
128-
let handle_data_ptr = ptr::addr_of(&handle_data);
129-
do interact(iotask) |loop_ptr| {
130-
unsafe {
131-
let result = uv_getaddrinfo(
132-
loop_ptr,
133-
handle_ptr,
134-
get_addr_cb,
135-
node_ptr,
136-
ptr::null(),
137-
ptr::null());
138-
match result {
139-
0i32 => {
118+
-> result::Result<~[IpAddr], IpGetAddrErr> {
119+
let (output_po, output_ch) = stream();
120+
let output_ch = SharedChan(output_ch);
121+
do str::as_buf(node) |node_ptr, len| {
122+
unsafe {
123+
log(debug, fmt!("slice len %?", len));
124+
let handle = create_uv_getaddrinfo_t();
125+
let handle_ptr = ptr::addr_of(&handle);
126+
let handle_data = GetAddrData {
127+
output_ch: output_ch.clone()
128+
};
129+
let handle_data_ptr = ptr::addr_of(&handle_data);
130+
do interact(iotask) |loop_ptr| {
131+
unsafe {
132+
let result = uv_getaddrinfo(
133+
loop_ptr,
134+
handle_ptr,
135+
get_addr_cb,
136+
node_ptr,
137+
ptr::null(),
138+
ptr::null());
139+
match result {
140+
0i32 => {
140141
set_data_for_req(handle_ptr, handle_data_ptr);
141-
}
142-
_ => {
142+
}
143+
_ => {
143144
output_ch.send(result::Err(GetAddrUnknownError));
144-
}
145145
}
146146
}
147-
};
148-
output_ch.recv()
149-
}
147+
}
148+
};
149+
output_po.recv()
150150
}
151151
}
152152
}
@@ -300,7 +300,7 @@ pub mod v6 {
300300
}
301301

302302
struct GetAddrData {
303-
output_ch: oldcomm::Chan<result::Result<~[IpAddr],IpGetAddrErr>>
303+
output_ch: SharedChan<result::Result<~[IpAddr],IpGetAddrErr>>
304304
}
305305

306306
extern fn get_addr_cb(handle: *uv_getaddrinfo_t, status: libc::c_int,
@@ -309,6 +309,7 @@ extern fn get_addr_cb(handle: *uv_getaddrinfo_t, status: libc::c_int,
309309
log(debug, ~"in get_addr_cb");
310310
let handle_data = get_data_for_req(handle) as
311311
*GetAddrData;
312+
let output_ch = (*handle_data).output_ch.clone();
312313
if status == 0i32 {
313314
if res != (ptr::null::<addrinfo>()) {
314315
let mut out_vec = ~[];
@@ -326,7 +327,7 @@ extern fn get_addr_cb(handle: *uv_getaddrinfo_t, status: libc::c_int,
326327
else {
327328
log(debug, ~"curr_addr is not of family AF_INET or "+
328329
~"AF_INET6. Error.");
329-
(*handle_data).output_ch.send(
330+
output_ch.send(
330331
result::Err(GetAddrUnknownError));
331332
break;
332333
};
@@ -344,17 +345,17 @@ extern fn get_addr_cb(handle: *uv_getaddrinfo_t, status: libc::c_int,
344345
}
345346
log(debug, fmt!("successful process addrinfo result, len: %?",
346347
vec::len(out_vec)));
347-
(*handle_data).output_ch.send(result::Ok(move out_vec));
348+
output_ch.send(result::Ok(move out_vec));
348349
}
349350
else {
350351
log(debug, ~"addrinfo pointer is NULL");
351-
(*handle_data).output_ch.send(
352+
output_ch.send(
352353
result::Err(GetAddrUnknownError));
353354
}
354355
}
355356
else {
356357
log(debug, ~"status != 0 error in get_addr_cb");
357-
(*handle_data).output_ch.send(
358+
output_ch.send(
358359
result::Err(GetAddrUnknownError));
359360
}
360361
if res != (ptr::null::<addrinfo>()) {

0 commit comments

Comments
 (0)