Replace 0 as *const/mut T with ptr::null/null_mut()
This commit is contained in:
parent
378fb5846d
commit
2c2480df5d
19 changed files with 65 additions and 55 deletions
|
|
@ -46,6 +46,7 @@ use core::prelude::*;
|
|||
|
||||
use alloc::boxed::Box;
|
||||
use core::mem;
|
||||
use core::ptr;
|
||||
use core::cell::UnsafeCell;
|
||||
|
||||
use sync::atomic::{AtomicPtr, Ordering};
|
||||
|
|
@ -82,7 +83,7 @@ unsafe impl<T:Send> Sync for Queue<T> { }
|
|||
impl<T> Node<T> {
|
||||
unsafe fn new(v: Option<T>) -> *mut Node<T> {
|
||||
mem::transmute(box Node {
|
||||
next: AtomicPtr::new(0 as *mut Node<T>),
|
||||
next: AtomicPtr::new(ptr::null_mut()),
|
||||
value: v,
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ use core::prelude::*;
|
|||
use core::cell::Cell;
|
||||
use core::marker;
|
||||
use core::mem;
|
||||
use core::ptr;
|
||||
use core::uint;
|
||||
|
||||
use sync::mpsc::{Receiver, RecvError};
|
||||
|
|
@ -130,8 +131,8 @@ impl Select {
|
|||
pub fn new() -> Select {
|
||||
Select {
|
||||
marker1: marker::NoSend,
|
||||
head: 0 as *mut Handle<'static, ()>,
|
||||
tail: 0 as *mut Handle<'static, ()>,
|
||||
head: ptr::null_mut(),
|
||||
tail: ptr::null_mut(),
|
||||
next_id: Cell::new(1),
|
||||
}
|
||||
}
|
||||
|
|
@ -144,8 +145,8 @@ impl Select {
|
|||
#[cfg(not(stage0))] // NOTE remove cfg after next snapshot
|
||||
pub fn new() -> Select {
|
||||
Select {
|
||||
head: 0 as *mut Handle<'static, ()>,
|
||||
tail: 0 as *mut Handle<'static, ()>,
|
||||
head: ptr::null_mut(),
|
||||
tail: ptr::null_mut(),
|
||||
next_id: Cell::new(1),
|
||||
}
|
||||
}
|
||||
|
|
@ -159,8 +160,8 @@ impl Select {
|
|||
Handle {
|
||||
id: id,
|
||||
selector: self,
|
||||
next: 0 as *mut Handle<'static, ()>,
|
||||
prev: 0 as *mut Handle<'static, ()>,
|
||||
next: ptr::null_mut(),
|
||||
prev: ptr::null_mut(),
|
||||
added: false,
|
||||
rx: rx,
|
||||
packet: rx,
|
||||
|
|
@ -325,8 +326,8 @@ impl<'rx, T: Send> Handle<'rx, T> {
|
|||
(*self.next).prev = self.prev;
|
||||
}
|
||||
|
||||
self.next = 0 as *mut Handle<'static, ()>;
|
||||
self.prev = 0 as *mut Handle<'static, ()>;
|
||||
self.next = ptr::null_mut();
|
||||
self.prev = ptr::null_mut();
|
||||
|
||||
self.added = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ use core::prelude::*;
|
|||
|
||||
use alloc::boxed::Box;
|
||||
use core::mem;
|
||||
use core::ptr;
|
||||
use core::cell::UnsafeCell;
|
||||
|
||||
use sync::atomic::{AtomicPtr, AtomicUsize, Ordering};
|
||||
|
|
@ -82,7 +83,7 @@ impl<T: Send> Node<T> {
|
|||
unsafe {
|
||||
mem::transmute(box Node {
|
||||
value: None,
|
||||
next: AtomicPtr::new(0 as *mut Node<T>),
|
||||
next: AtomicPtr::new(ptr::null_mut::<Node<T>>()),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -131,7 +132,7 @@ impl<T: Send> Queue<T> {
|
|||
let n = self.alloc();
|
||||
assert!((*n).value.is_none());
|
||||
(*n).value = Some(t);
|
||||
(*n).next.store(0 as *mut Node<T>, Ordering::Relaxed);
|
||||
(*n).next.store(ptr::null_mut(), Ordering::Relaxed);
|
||||
(**self.head.get()).next.store(n, Ordering::Release);
|
||||
*self.head.get() = n;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ use self::Blocker::*;
|
|||
|
||||
use vec::Vec;
|
||||
use core::mem;
|
||||
use core::ptr;
|
||||
|
||||
use sync::atomic::{Ordering, AtomicUsize};
|
||||
use sync::mpsc::blocking::{self, WaitToken, SignalToken};
|
||||
|
|
@ -145,8 +146,8 @@ impl<T: Send> Packet<T> {
|
|||
cap: cap,
|
||||
canceled: None,
|
||||
queue: Queue {
|
||||
head: 0 as *mut Node,
|
||||
tail: 0 as *mut Node,
|
||||
head: ptr::null_mut(),
|
||||
tail: ptr::null_mut(),
|
||||
},
|
||||
buf: Buffer {
|
||||
buf: range(0, cap + if cap == 0 {1} else {0}).map(|_| None).collect(),
|
||||
|
|
@ -160,7 +161,7 @@ impl<T: Send> Packet<T> {
|
|||
// wait until a send slot is available, returning locked access to
|
||||
// the channel state.
|
||||
fn acquire_send_slot(&self) -> MutexGuard<State<T>> {
|
||||
let mut node = Node { token: None, next: 0 as *mut Node };
|
||||
let mut node = Node { token: None, next: ptr::null_mut() };
|
||||
loop {
|
||||
let mut guard = self.lock.lock().unwrap();
|
||||
// are we ready to go?
|
||||
|
|
@ -343,8 +344,8 @@ impl<T: Send> Packet<T> {
|
|||
Vec::new()
|
||||
};
|
||||
let mut queue = mem::replace(&mut guard.queue, Queue {
|
||||
head: 0 as *mut Node,
|
||||
tail: 0 as *mut Node,
|
||||
head: ptr::null_mut(),
|
||||
tail: ptr::null_mut(),
|
||||
});
|
||||
|
||||
let waiter = match mem::replace(&mut guard.blocker, NoneBlocked) {
|
||||
|
|
@ -453,7 +454,7 @@ impl Queue {
|
|||
fn enqueue(&mut self, node: &mut Node) -> WaitToken {
|
||||
let (wait_token, signal_token) = blocking::tokens();
|
||||
node.token = Some(signal_token);
|
||||
node.next = 0 as *mut Node;
|
||||
node.next = ptr::null_mut();
|
||||
|
||||
if self.tail.is_null() {
|
||||
self.head = node as *mut Node;
|
||||
|
|
@ -475,10 +476,10 @@ impl Queue {
|
|||
let node = self.head;
|
||||
self.head = unsafe { (*node).next };
|
||||
if self.head.is_null() {
|
||||
self.tail = 0 as *mut Node;
|
||||
self.tail = ptr::null_mut();
|
||||
}
|
||||
unsafe {
|
||||
(*node).next = 0 as *mut Node;
|
||||
(*node).next = ptr::null_mut();
|
||||
Some((*node).token.take().unwrap())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue