Skip to content

Commit 592ed44

Browse files
committed
---
yaml --- r: 69323 b: refs/heads/auto c: f132401 h: refs/heads/master i: 69321: 87d37ca 69319: f65997e v: v3
1 parent 28bd341 commit 592ed44

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1414
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1515
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1616
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
17-
refs/heads/auto: 8f86fa3b31ec80020c30b70d1d04987481f89e4c
17+
refs/heads/auto: f132401a0b4f7fe19f9de50ab5a5a6a0d1d68607
1818
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1919
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c

branches/auto/src/libstd/unstable/atomics.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,10 @@ pub struct AtomicOption<T> {
6868
}
6969

7070
pub enum Ordering {
71+
Relaxed,
7172
Release,
7273
Acquire,
74+
AcqRel,
7375
SeqCst
7476
}
7577

@@ -318,6 +320,7 @@ pub unsafe fn atomic_store<T>(dst: &mut T, val: T, order:Ordering) {
318320

319321
match order {
320322
Release => intrinsics::atomic_store_rel(dst, val),
323+
Relaxed => intrinsics::atomic_store_relaxed(dst, val),
321324
_ => intrinsics::atomic_store(dst, val)
322325
}
323326
}
@@ -328,6 +331,7 @@ pub unsafe fn atomic_load<T>(dst: &T, order:Ordering) -> T {
328331

329332
cast::transmute(match order {
330333
Acquire => intrinsics::atomic_load_acq(dst),
334+
Relaxed => intrinsics::atomic_load_relaxed(dst),
331335
_ => intrinsics::atomic_load(dst)
332336
})
333337
}
@@ -340,6 +344,8 @@ pub unsafe fn atomic_swap<T>(dst: &mut T, val: T, order: Ordering) -> T {
340344
cast::transmute(match order {
341345
Acquire => intrinsics::atomic_xchg_acq(dst, val),
342346
Release => intrinsics::atomic_xchg_rel(dst, val),
347+
AcqRel => intrinsics::atomic_xchg_acqrel(dst, val),
348+
Relaxed => intrinsics::atomic_xchg_relaxed(dst, val),
343349
_ => intrinsics::atomic_xchg(dst, val)
344350
})
345351
}
@@ -353,6 +359,8 @@ pub unsafe fn atomic_add<T>(dst: &mut T, val: T, order: Ordering) -> T {
353359
cast::transmute(match order {
354360
Acquire => intrinsics::atomic_xadd_acq(dst, val),
355361
Release => intrinsics::atomic_xadd_rel(dst, val),
362+
AcqRel => intrinsics::atomic_xadd_acqrel(dst, val),
363+
Relaxed => intrinsics::atomic_xadd_relaxed(dst, val),
356364
_ => intrinsics::atomic_xadd(dst, val)
357365
})
358366
}
@@ -366,6 +374,8 @@ pub unsafe fn atomic_sub<T>(dst: &mut T, val: T, order: Ordering) -> T {
366374
cast::transmute(match order {
367375
Acquire => intrinsics::atomic_xsub_acq(dst, val),
368376
Release => intrinsics::atomic_xsub_rel(dst, val),
377+
AcqRel => intrinsics::atomic_xsub_acqrel(dst, val),
378+
Relaxed => intrinsics::atomic_xsub_relaxed(dst, val),
369379
_ => intrinsics::atomic_xsub(dst, val)
370380
})
371381
}
@@ -379,6 +389,8 @@ pub unsafe fn atomic_compare_and_swap<T>(dst:&mut T, old:T, new:T, order: Orderi
379389
cast::transmute(match order {
380390
Acquire => intrinsics::atomic_cxchg_acq(dst, old, new),
381391
Release => intrinsics::atomic_cxchg_rel(dst, old, new),
392+
AcqRel => intrinsics::atomic_cxchg_acqrel(dst, old, new),
393+
Relaxed => intrinsics::atomic_cxchg_relaxed(dst, old, new),
382394
_ => intrinsics::atomic_cxchg(dst, old, new),
383395
})
384396
}

0 commit comments

Comments
 (0)