Skip to content

Commit 8b95704

Browse files
committed
---
yaml --- r: 120542 b: refs/heads/dist-snap c: 84378b0 h: refs/heads/master v: v3
1 parent bf8c8b4 commit 8b95704

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: 1813e5aa1a03b0596b8de7abd1af31edf5d6098f
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: fe93c3d47ed0cdf0a0cbac66a9f35ddb4c6783a2
9+
refs/heads/dist-snap: 84378b0b5af9ec09ce627fdd59353b408d7f7fb4
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/src/libstd/rt/task.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
//! local storage, and logging. Even a 'freestanding' Rust would likely want
1414
//! to implement this.
1515
16+
use alloc::arc::Arc;
17+
1618
use cleanup;
1719
use clone::Clone;
1820
use comm::Sender;
@@ -32,7 +34,6 @@ use rt::local_heap::LocalHeap;
3234
use rt::rtio::LocalIo;
3335
use rt::unwind::Unwinder;
3436
use str::SendStr;
35-
use sync::arc::UnsafeArc;
3637
use sync::atomics::{AtomicUint, SeqCst};
3738
use task::{TaskResult, TaskOpts};
3839
use unstable::finally::Finally;
@@ -65,7 +66,7 @@ pub struct LocalStorage(pub Option<local_data::Map>);
6566
/// at any time.
6667
pub enum BlockedTask {
6768
Owned(Box<Task>),
68-
Shared(UnsafeArc<AtomicUint>),
69+
Shared(Arc<AtomicUint>),
6970
}
7071

7172
pub enum DeathAction {
@@ -82,7 +83,7 @@ pub struct Death {
8283
}
8384

8485
pub struct BlockedTasks {
85-
inner: UnsafeArc<AtomicUint>,
86+
inner: Arc<AtomicUint>,
8687
}
8788

8889
impl Task {
@@ -313,10 +314,10 @@ impl BlockedTask {
313314
pub fn wake(self) -> Option<Box<Task>> {
314315
match self {
315316
Owned(task) => Some(task),
316-
Shared(arc) => unsafe {
317-
match (*arc.get()).swap(0, SeqCst) {
317+
Shared(arc) => {
318+
match arc.swap(0, SeqCst) {
318319
0 => None,
319-
n => Some(mem::transmute(n)),
320+
n => Some(unsafe { mem::transmute(n) }),
320321
}
321322
}
322323
}
@@ -343,7 +344,7 @@ impl BlockedTask {
343344
let arc = match self {
344345
Owned(task) => {
345346
let flag = unsafe { AtomicUint::new(mem::transmute(task)) };
346-
UnsafeArc::new(flag)
347+
Arc::new(flag)
347348
}
348349
Shared(arc) => arc.clone(),
349350
};
@@ -375,7 +376,7 @@ impl BlockedTask {
375376
if blocked_task_ptr & 0x1 == 0 {
376377
Owned(mem::transmute(blocked_task_ptr))
377378
} else {
378-
let ptr: Box<UnsafeArc<AtomicUint>> =
379+
let ptr: Box<Arc<AtomicUint>> =
379380
mem::transmute(blocked_task_ptr & !1);
380381
Shared(*ptr)
381382
}

0 commit comments

Comments
 (0)