std: Add init and uninit to mem. Replace direct intrinsic usage

This commit is contained in:
Brian Anderson 2014-02-08 02:46:55 -08:00
parent 49ac48db3f
commit d433b80e02
19 changed files with 60 additions and 43 deletions

View file

@ -288,8 +288,7 @@ extern "rust-intrinsic" {
/// Create a value initialized to zero.
///
/// `init` is unsafe because it returns a zeroed-out datum,
/// which is unsafe unless T is POD. We don't have a POD
/// kind yet. (See #4074).
/// which is unsafe unless T is Pod.
pub fn init<T>() -> T;
/// Create an uninitialized value.

View file

@ -92,7 +92,7 @@ mod imp {
use libc;
use self::os::{PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER,
pthread_mutex_t, pthread_cond_t};
use unstable::intrinsics;
use mem;
type pthread_mutexattr_t = libc::c_void;
type pthread_condattr_t = libc::c_void;
@ -208,8 +208,8 @@ mod imp {
impl Mutex {
pub unsafe fn new() -> Mutex {
let mut m = Mutex {
lock: intrinsics::init(),
cond: intrinsics::init(),
lock: mem::init(),
cond: mem::init(),
};
pthread_mutex_init(&mut m.lock, 0 as *libc::c_void);