auto merge of #10679 : alexcrichton/rust/no-routine, r=pcwalton
This commit is contained in:
commit
82d9033b67
@ -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); });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -192,7 +192,6 @@ pub mod reflect;
|
||||
pub mod condition;
|
||||
pub mod logging;
|
||||
pub mod util;
|
||||
pub mod routine;
|
||||
pub mod mem;
|
||||
|
||||
|
||||
|
@ -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) {}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user