auto merge of #10679 : alexcrichton/rust/no-routine, r=pcwalton

This commit is contained in:
bors 2013-11-26 19:37:38 -08:00
commit 82d9033b67
3 changed files with 5 additions and 50 deletions

View File

@ -37,7 +37,6 @@
*/
use std::ptr;
use std::routine::Runnable;
use std::util;
/**
@ -50,7 +49,7 @@ pub struct CVec<T> {
}
struct DtorRes {
dtor: Option<~Runnable>,
dtor: Option<proc()>,
}
#[unsafe_destructor]
@ -59,13 +58,13 @@ impl Drop for DtorRes {
let dtor = util::replace(&mut self.dtor, None);
match dtor {
None => (),
Some(f) => f.run()
Some(f) => f()
}
}
}
impl DtorRes {
fn new(dtor: Option<~Runnable>) -> DtorRes {
fn new(dtor: Option<proc()>) -> DtorRes {
DtorRes {
dtor: dtor,
}
@ -103,7 +102,7 @@ pub unsafe fn CVec<T>(base: *mut T, len: uint) -> CVec<T> {
* * dtor - A function to run when the value is destructed, useful
* for freeing the buffer, etc.
*/
pub unsafe fn c_vec_with_dtor<T>(base: *mut T, len: uint, dtor: ~Runnable)
pub unsafe fn c_vec_with_dtor<T>(base: *mut T, len: uint, dtor: proc())
-> CVec<T> {
return CVec{
base: base,
@ -155,19 +154,6 @@ mod tests {
use std::libc::*;
use std::libc;
use std::routine::Runnable;
struct LibcFree {
mem: *c_void,
}
impl Runnable for LibcFree {
fn run(~self) {
unsafe {
libc::free(self.mem)
}
}
}
fn malloc(n: size_t) -> CVec<u8> {
unsafe {
@ -177,9 +163,7 @@ mod tests {
return c_vec_with_dtor(mem as *mut u8,
n as uint,
~LibcFree {
mem: mem,
} as ~Runnable);
proc() unsafe { libc::free(mem); });
}
}

View File

@ -192,7 +192,6 @@ pub mod reflect;
pub mod condition;
pub mod logging;
pub mod util;
pub mod routine;
pub mod mem;

View File

@ -1,28 +0,0 @@
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
/*!
* Routines are like closures except that they own their arguments and can
* only run once.
*/
/// A routine that takes no arguments and returns nothing.
pub trait Runnable {
/// The entry point for the routine.
fn run(~self);
}
/// A convenience routine that does nothing.
pub struct NoOpRunnable;
impl Runnable for NoOpRunnable {
fn run(~self) {}
}