Skip to content

Commit 94b84a8

Browse files
committed
std: all of the calls in rt::uv::file take a &Loop
1 parent f01e265 commit 94b84a8

File tree

2 files changed

+43
-44
lines changed

2 files changed

+43
-44
lines changed

src/libstd/rt/uv/file.rs

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ impl FsRequest {
3737
fs_req
3838
}
3939

40-
fn open_common<P: PathLike>(loop_: Loop, path: &P, flags: int, mode: int,
40+
fn open_common<P: PathLike>(loop_: &Loop, path: &P, flags: int, mode: int,
4141
cb: Option<FsCallback>) -> int {
4242
let complete_cb_ptr = match cb {
4343
Some(_) => compl_cb as *u8,
@@ -54,17 +54,17 @@ impl FsRequest {
5454
if is_sync { req.cleanup_and_delete(); }
5555
result
5656
}
57-
pub fn open<P: PathLike>(loop_: Loop, path: &P, flags: int, mode: int,
57+
pub fn open<P: PathLike>(loop_: &Loop, path: &P, flags: int, mode: int,
5858
cb: FsCallback) {
5959
FsRequest::open_common(loop_, path, flags, mode, Some(cb));
6060
}
6161

62-
pub fn open_sync<P: PathLike>(loop_: Loop, path: &P, flags: int, mode: int) -> Result<int, UvError> {
62+
pub fn open_sync<P: PathLike>(loop_: &Loop, path: &P, flags: int, mode: int) -> Result<int, UvError> {
6363
let result = FsRequest::open_common(loop_, path, flags, mode, None);
64-
sync_cleanup(&loop_, result)
64+
sync_cleanup(loop_, result)
6565
}
6666

67-
fn unlink_common<P: PathLike>(loop_: Loop, path: &P, cb: Option<FsCallback>) -> int {
67+
fn unlink_common<P: PathLike>(loop_: &Loop, path: &P, cb: Option<FsCallback>) -> int {
6868
let complete_cb_ptr = match cb {
6969
Some(_) => compl_cb as *u8,
7070
None => 0 as *u8
@@ -80,13 +80,13 @@ impl FsRequest {
8080
if is_sync { req.cleanup_and_delete(); }
8181
result
8282
}
83-
pub fn unlink<P: PathLike>(loop_: Loop, path: &P, cb: FsCallback) {
83+
pub fn unlink<P: PathLike>(loop_: &Loop, path: &P, cb: FsCallback) {
8484
let result = FsRequest::unlink_common(loop_, path, Some(cb));
85-
sync_cleanup(&loop_, result);
85+
sync_cleanup(loop_, result);
8686
}
87-
pub fn unlink_sync<P: PathLike>(loop_: Loop, path: &P) -> Result<int, UvError> {
87+
pub fn unlink_sync<P: PathLike>(loop_: &Loop, path: &P) -> Result<int, UvError> {
8888
let result = FsRequest::unlink_common(loop_, path, None);
89-
sync_cleanup(&loop_, result)
89+
sync_cleanup(loop_, result)
9090
}
9191

9292
pub fn install_req_data(&self, cb: Option<FsCallback>) {
@@ -158,7 +158,7 @@ impl FileDescriptor {
158158
}
159159

160160
// as per bnoordhuis in #libuv: offset >= 0 uses prwrite instead of write
161-
fn write_common(&mut self, loop_: Loop, buf: Buf, offset: i64, cb: Option<FsCallback>)
161+
fn write_common(&mut self, loop_: &Loop, buf: Buf, offset: i64, cb: Option<FsCallback>)
162162
-> int {
163163
let complete_cb_ptr = match cb {
164164
Some(_) => compl_cb as *u8,
@@ -177,16 +177,16 @@ impl FileDescriptor {
177177
if is_sync { req.cleanup_and_delete(); }
178178
result
179179
}
180-
pub fn write(&mut self, loop_: Loop, buf: Buf, offset: i64, cb: FsCallback) {
180+
pub fn write(&mut self, loop_: &Loop, buf: Buf, offset: i64, cb: FsCallback) {
181181
self.write_common(loop_, buf, offset, Some(cb));
182182
}
183-
pub fn write_sync(&mut self, loop_: Loop, buf: Buf, offset: i64)
183+
pub fn write_sync(&mut self, loop_: &Loop, buf: Buf, offset: i64)
184184
-> Result<int, UvError> {
185185
let result = self.write_common(loop_, buf, offset, None);
186-
sync_cleanup(&loop_, result)
186+
sync_cleanup(loop_, result)
187187
}
188188

189-
fn read_common(&mut self, loop_: Loop, buf: Buf,
189+
fn read_common(&mut self, loop_: &Loop, buf: Buf,
190190
offset: i64, cb: Option<FsCallback>)
191191
-> int {
192192
let complete_cb_ptr = match cb {
@@ -205,16 +205,16 @@ impl FileDescriptor {
205205
if is_sync { req.cleanup_and_delete(); }
206206
result
207207
}
208-
pub fn read(&mut self, loop_: Loop, buf: Buf, offset: i64, cb: FsCallback) {
208+
pub fn read(&mut self, loop_: &Loop, buf: Buf, offset: i64, cb: FsCallback) {
209209
self.read_common(loop_, buf, offset, Some(cb));
210210
}
211-
pub fn read_sync(&mut self, loop_: Loop, buf: Buf, offset: i64)
211+
pub fn read_sync(&mut self, loop_: &Loop, buf: Buf, offset: i64)
212212
-> Result<int, UvError> {
213213
let result = self.read_common(loop_, buf, offset, None);
214-
sync_cleanup(&loop_, result)
214+
sync_cleanup(loop_, result)
215215
}
216216

217-
fn close_common(self, loop_: Loop, cb: Option<FsCallback>) -> int {
217+
fn close_common(self, loop_: &Loop, cb: Option<FsCallback>) -> int {
218218
let complete_cb_ptr = match cb {
219219
Some(_) => compl_cb as *u8,
220220
None => 0 as *u8
@@ -228,12 +228,12 @@ impl FileDescriptor {
228228
if is_sync { req.cleanup_and_delete(); }
229229
result
230230
}
231-
pub fn close(self, loop_: Loop, cb: FsCallback) {
231+
pub fn close(self, loop_: &Loop, cb: FsCallback) {
232232
self.close_common(loop_, Some(cb));
233233
}
234-
pub fn close_sync(self, loop_: Loop) -> Result<int, UvError> {
234+
pub fn close_sync(self, loop_: &Loop) -> Result<int, UvError> {
235235
let result = self.close_common(loop_, None);
236-
sync_cleanup(&loop_, result)
236+
sync_cleanup(loop_, result)
237237
}
238238
}
239239
extern fn compl_cb(req: *uv_fs_t) {
@@ -301,26 +301,25 @@ mod test {
301301
let read_buf = slice_to_uv_buf(read_mem);
302302
let read_buf_ptr: *Buf = &read_buf;
303303
let p = Path(path_str);
304-
do FsRequest::open(loop_, &p, create_flags as int, mode as int)
304+
do FsRequest::open(&loop_, &p, create_flags as int, mode as int)
305305
|req, uverr| {
306-
let loop_ = req.get_loop();
307306
assert!(uverr.is_none());
308307
let mut fd = FileDescriptor::from_open_req(req);
309308
let raw_fd = fd.native_handle();
310309
let buf = unsafe { *write_buf_ptr };
311-
do fd.write(loop_, buf, -1) |_, uverr| {
310+
do fd.write(&req.get_loop(), buf, -1) |req, uverr| {
312311
let fd = FileDescriptor(raw_fd);
313-
do fd.close(loop_) |req, _| {
312+
do fd.close(&req.get_loop()) |req, _| {
314313
let loop_ = req.get_loop();
315314
assert!(uverr.is_none());
316-
do FsRequest::open(loop_, &Path(path_str), read_flags as int,0)
315+
do FsRequest::open(&loop_, &Path(path_str), read_flags as int,0)
317316
|req, uverr| {
318317
assert!(uverr.is_none());
319318
let loop_ = req.get_loop();
320319
let mut fd = FileDescriptor::from_open_req(req);
321320
let raw_fd = fd.native_handle();
322321
let read_buf = unsafe { *read_buf_ptr };
323-
do fd.read(loop_, read_buf, 0) |req, uverr| {
322+
do fd.read(&loop_, read_buf, 0) |req, uverr| {
324323
assert!(uverr.is_none());
325324
let loop_ = req.get_loop();
326325
// we know nread >=0 because uverr is none..
@@ -334,8 +333,9 @@ mod test {
334333
read_buf.base, nread))
335334
};
336335
assert!(read_str == ~"hello");
337-
do FileDescriptor(raw_fd).close(loop_) |_,uverr| {
336+
do FileDescriptor(raw_fd).close(&loop_) |req,uverr| {
338337
assert!(uverr.is_none());
338+
let loop_ = &req.get_loop();
339339
do FsRequest::unlink(loop_, &Path(path_str))
340340
|_,uverr| {
341341
assert!(uverr.is_none());
@@ -367,26 +367,26 @@ mod test {
367367
let write_val = "hello".as_bytes().to_owned();
368368
let write_buf = slice_to_uv_buf(write_val);
369369
// open/create
370-
let result = FsRequest::open_sync(loop_, &Path(path_str),
370+
let result = FsRequest::open_sync(&loop_, &Path(path_str),
371371
create_flags as int, mode as int);
372372
assert!(result.is_ok());
373373
let mut fd = FileDescriptor(result.unwrap() as i32);
374374
// write
375-
let result = fd.write_sync(loop_, write_buf, -1);
375+
let result = fd.write_sync(&loop_, write_buf, -1);
376376
assert!(result.is_ok());
377377
// close
378-
let result = fd.close_sync(loop_);
378+
let result = fd.close_sync(&loop_);
379379
assert!(result.is_ok());
380380
// re-open
381-
let result = FsRequest::open_sync(loop_, &Path(path_str),
381+
let result = FsRequest::open_sync(&loop_, &Path(path_str),
382382
read_flags as int,0);
383383
assert!(result.is_ok());
384384
let len = 1028;
385385
let mut fd = FileDescriptor(result.unwrap() as i32);
386386
// read
387387
let read_mem: ~[u8] = vec::from_elem(len, 0u8);
388388
let buf = slice_to_uv_buf(read_mem);
389-
let result = fd.read_sync(loop_, buf, 0);
389+
let result = fd.read_sync(&loop_, buf, 0);
390390
assert!(result.is_ok());
391391
let nread = result.unwrap();
392392
// nread == 0 would be EOF.. we know it's >= zero because otherwise
@@ -396,10 +396,10 @@ mod test {
396396
read_mem.slice(0, nread as uint));
397397
assert!(read_str == ~"hello");
398398
// close
399-
let result = fd.close_sync(loop_);
399+
let result = fd.close_sync(&loop_);
400400
assert!(result.is_ok());
401401
// unlink
402-
let result = FsRequest::unlink_sync(loop_, &Path(path_str));
402+
let result = FsRequest::unlink_sync(&loop_, &Path(path_str));
403403
assert!(result.is_ok());
404404
} else { fail!("nread was 0.. wudn't expectin' that."); }
405405
loop_.close();
@@ -416,7 +416,7 @@ mod test {
416416
file_test_full_simple_impl_sync();
417417
}
418418
419-
fn naive_print(loop_: Loop, input: &str) {
419+
fn naive_print(loop_: &Loop, input: &str) {
420420
let mut stdout = FileDescriptor(STDOUT_FILENO);
421421
let write_val = input.as_bytes();
422422
let write_buf = slice_to_uv_buf(write_val);
@@ -427,7 +427,7 @@ mod test {
427427
fn file_test_write_to_stdout() {
428428
do run_in_bare_thread {
429429
let mut loop_ = Loop::new();
430-
naive_print(loop_, "zanzibar!\n");
430+
naive_print(&loop_, "zanzibar!\n");
431431
loop_.run();
432432
loop_.close();
433433
};

src/libstd/rt/uv/uvio.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,6 @@ impl IoFactory for UvIoFactory {
468468

469469
fn fs_open<P: PathLike>(&mut self, path: &P, flags: int, mode: int)
470470
-> Result<~RtioFileStream, IoError> {
471-
let loop_ = Loop {handle: self.uv_loop().native_handle()};
472471
let result_cell = Cell::new_empty();
473472
let result_cell_ptr: *Cell<Result<~RtioFileStream,
474473
IoError>> = &result_cell;
@@ -477,8 +476,9 @@ impl IoFactory for UvIoFactory {
477476
do scheduler.deschedule_running_task_and_then |_, task| {
478477
let task_cell = Cell::new(task);
479478
let path = path_cell.take();
480-
do file::FsRequest::open(loop_, path, flags, mode) |req,err| {
479+
do file::FsRequest::open(self.uv_loop(), path, flags, mode) |req,err| {
481480
if err.is_none() {
481+
let loop_ = Loop {handle: req.get_loop().native_handle()};
482482
let home = get_handle_to_current_scheduler!();
483483
let fd = file::FileDescriptor(req.get_result());
484484
let fs = ~UvFileStream::new(
@@ -500,15 +500,14 @@ impl IoFactory for UvIoFactory {
500500
}
501501

502502
fn fs_unlink<P: PathLike>(&mut self, path: &P) -> Result<(), IoError> {
503-
let loop_ = Loop {handle: self.uv_loop().native_handle()};
504503
let result_cell = Cell::new_empty();
505504
let result_cell_ptr: *Cell<Result<(), IoError>> = &result_cell;
506505
let path_cell = Cell::new(path);
507506
let scheduler = Local::take::<Scheduler>();
508507
do scheduler.deschedule_running_task_and_then |_, task| {
509508
let task_cell = Cell::new(task);
510509
let path = path_cell.take();
511-
do file::FsRequest::unlink(loop_, path) |_, err| {
510+
do file::FsRequest::unlink(self.uv_loop(), path) |_, err| {
512511
let res = match err {
513512
None => Ok(()),
514513
Some(err) => Err(uv_error_to_io_error(err))
@@ -1088,7 +1087,7 @@ impl UvFileStream {
10881087
do scheduler.deschedule_running_task_and_then |_, task| {
10891088
let buf = unsafe { slice_to_uv_buf(*buf_ptr) };
10901089
let task_cell = Cell::new(task);
1091-
do self_.fd.read(self.loop_, buf, offset) |req, uverr| {
1090+
do self_.fd.read(&self_.loop_, buf, offset) |req, uverr| {
10921091
let res = match uverr {
10931092
None => Ok(req.get_result() as int),
10941093
Some(err) => Err(uv_error_to_io_error(err))
@@ -1110,7 +1109,7 @@ impl UvFileStream {
11101109
do scheduler.deschedule_running_task_and_then |_, task| {
11111110
let buf = unsafe { slice_to_uv_buf(*buf_ptr) };
11121111
let task_cell = Cell::new(task);
1113-
do self_.fd.write(self.loop_, buf, offset) |_, uverr| {
1112+
do self_.fd.write(&self_.loop_, buf, offset) |_, uverr| {
11141113
let res = match uverr {
11151114
None => Ok(()),
11161115
Some(err) => Err(uv_error_to_io_error(err))
@@ -1133,7 +1132,7 @@ impl Drop for UvFileStream {
11331132
let scheduler = Local::take::<Scheduler>();
11341133
do scheduler.deschedule_running_task_and_then |_, task| {
11351134
let task_cell = Cell::new(task);
1136-
do self_.fd.close(self.loop_) |_,_| {
1135+
do self_.fd.close(&self.loop_) |_,_| {
11371136
let scheduler = Local::take::<Scheduler>();
11381137
scheduler.resume_blocked_task_immediately(task_cell.take());
11391138
};

0 commit comments

Comments
 (0)