Skip to content

Commit ac7d52d

Browse files
author
Eric Reed
committed
---
yaml --- r: 142679 b: refs/heads/try2 c: f604686 h: refs/heads/master i: 142677: 27792cf 142675: e552906 142671: 21d6ed5 v: v3
1 parent e32d97d commit ac7d52d

File tree

2 files changed

+6
-15
lines changed

2 files changed

+6
-15
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: c5b19f0bf9c2f32f368b0f2565a06ae0271a96c1
8+
refs/heads/try2: f60468629566ae896e90039f89ef5bb63f920aef
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/libstd/rt/uv/uvio.rs

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ impl IoFactory for UvIoFactory {
264264
fn udp_bind(&mut self, addr: IpAddr) -> Result<~RtioUdpSocketObject, IoError> {
265265
let /*mut*/ watcher = UdpWatcher::new(self.uv_loop());
266266
match watcher.bind(addr) {
267-
Ok(_) => Ok(~UvUdpSocket { watcher: watcher }),
267+
Ok(_) => Ok(~UvUdpSocket(watcher)),
268268
Err(uverr) => {
269269
let scheduler = Local::take::<Scheduler>();
270270
do scheduler.deschedule_running_task_and_then |_, task| {
@@ -451,22 +451,15 @@ impl RtioTcpStream for UvTcpStream {
451451
}
452452
}
453453

454-
pub struct UvUdpSocket {
455-
watcher: UdpWatcher
456-
}
457-
458-
impl UvUdpSocket {
459-
fn watcher(&self) -> UdpWatcher { self.watcher }
460-
}
454+
pub struct UvUdpSocket(UdpWatcher);
461455

462456
impl Drop for UvUdpSocket {
463457
fn finalize(&self) {
464458
rtdebug!("closing udp socket");
465-
let watcher = self.watcher();
466459
let scheduler = Local::take::<Scheduler>();
467460
do scheduler.deschedule_running_task_and_then |_, task| {
468461
let task_cell = Cell::new(task);
469-
do watcher.close {
462+
do self.close {
470463
let scheduler = Local::take::<Scheduler>();
471464
scheduler.resume_task_immediately(task_cell.take());
472465
}
@@ -481,14 +474,13 @@ impl RtioUdpSocket for UvUdpSocket {
481474

482475
let scheduler = Local::take::<Scheduler>();
483476
assert!(scheduler.in_task_context());
484-
let watcher = self.watcher();
485477
let buf_ptr: *&mut [u8] = &buf;
486478
do scheduler.deschedule_running_task_and_then |sched, task| {
487479
rtdebug!("recvfrom: entered scheduler context");
488480
assert!(!sched.in_task_context());
489481
let task_cell = Cell::new(task);
490482
let alloc: AllocCallback = |_| unsafe { slice_to_uv_buf(*buf_ptr) };
491-
do watcher.recv_start(alloc) |watcher, nread, _buf, addr, flags, status| {
483+
do self.recv_start(alloc) |watcher, nread, _buf, addr, flags, status| {
492484
let _ = flags; // NOTE add handling for partials?
493485

494486
watcher.recv_stop();
@@ -517,12 +509,11 @@ impl RtioUdpSocket for UvUdpSocket {
517509
let result_cell_ptr: *Cell<Result<(), IoError>> = &result_cell;
518510
let scheduler = Local::take::<Scheduler>();
519511
assert!(scheduler.in_task_context());
520-
let watcher = self.watcher();
521512
let buf_ptr: *&[u8] = &buf;
522513
do scheduler.deschedule_running_task_and_then |_, task| {
523514
let task_cell = Cell::new(task);
524515
let buf = unsafe { slice_to_uv_buf(*buf_ptr) };
525-
do watcher.send(buf, dst) |_watcher, status| {
516+
do self.send(buf, dst) |_watcher, status| {
526517

527518
let result = match status {
528519
None => Ok(()),

0 commit comments

Comments
 (0)