summary refs log tree commit diff
path: root/src/libstd/unstable/sync.rs
AgeCommit message (Collapse)AuthorLines
2013-09-18Register new snapshotsAlex Crichton-17/+0
2013-09-16switch Drop to `&mut self`Daniel Micay-2/+2
2013-08-29reduce the size of UnsafeArc from 2 words to 1Daniel Micay-1/+9
2013-08-27librustc: Ensure that type parameters are in the right positions in paths.Patrick Walton-1/+2
This removes the stacking of type parameters that occurs when invoking trait methods, and fixes all places in the standard library that were relying on it. It is somewhat awkward in places; I think we'll probably want something like the `Foo::<for T>::new()` syntax.
2013-08-27std: use ArcData rather than c_void in UnsafeArc.Huon Wilson-17/+12
This means that fewer `transmute`s are required, so there is less chance of a `transmute` not having the corresponding `forget` (possibly leading to use-after-free, etc).
2013-08-27Rename UnsafeAtomicRcBox to UnsafeArc. Fixes #7674.Huon Wilson-42/+42
2013-08-23std: Reduce TLS accessBrian Anderson-12/+16
2013-08-22Enabled unit tests in std and extra.Vadim Chugunov-3/+3
2013-08-19Add externfn macro and correctly label fixed_stack_segmentsNiko Matsakis-6/+20
2013-08-16Reserve 'yield' keywordKevin Ballard-10/+10
Rename task::yield() to task::deschedule(). Fixes #8494.
2013-08-12Don't use unkillable in UnsafeArc dtor when there's no unwrapper. Close #8382.Ben Blum-19/+21
2013-08-09Remove the C++ runtime. SayonaraBrian Anderson-31/+11
2013-08-09std: Fix perf of local allocations in newschedBrian Anderson-10/+16
Mostly optimizing TLS accesses to bring local heap allocation performance closer to that of oldsched. It's not completely at parity but removing the branches involved in supporting oldsched and optimizing pthread_get/setspecific to instead use our dedicated TCB slot will probably make up for it.
2013-08-03remove obsolete `foreach` keywordDaniel Micay-3/+3
this has been replaced by `for`
2013-08-02auto merge of #8195 : bblum/rust/task-cleanup, r=brsonbors-6/+4
In the first commit it is obvious why some of the barriers can be changed to ```Relaxed```, but it is not as obvious for the once I changed in ```kill.rs```. The rationale for those is documented as part of the documenting commit. Also the last commit is a temporary hack to prevent kill signals from being received in taskgroup cleanup code, which could be fixed in a more principled way once the old runtime is gone.
2013-08-02replace `range` with an external iteratorDaniel Micay-3/+3
2013-08-01Relax some atomic barriers. Loosen up all that tension. There, doesn't that ↵Ben Blum-6/+4
feel good?
2013-08-01std: Change `Times` trait to use `do` instead of `for`blake2-ppc-1/+1
Change the former repetition:: for 5.times { } to:: do 5.times { } .times() cannot be broken with `break` or `return` anymore; for those cases, use a numerical range loop instead.
2013-08-01auto merge of #8158 : bblum/rust/task-cleanup, r=brsonbors-2/+50
r? @brson
2013-08-01migrate many `for` loops to `foreach`Daniel Micay-1/+1
2013-07-31Move atomically to unstable::sync, and document what it actually does. Close ↵Ben Blum-2/+50
#7872.
2013-07-30UnsafeArc methods return unsafe pointers, so are not themselves unsafe.Ben Blum-115/+114
2013-07-30Add test cases for selectBen Blum-0/+26
2013-07-30Implement select() for new runtime pipes.Ben Blum-13/+41
2013-07-27Fix nits.Steven Stewart-Gallus-9/+7
2013-07-27Change concurrency primitives to standard naming conventionsSteven Stewart-Gallus-49/+51
To be more specific: `UPPERCASETYPE` was changed to `UppercaseType` `type_new` was changed to `Type::new` `type_function(value)` was changed to `value.method()`
2013-07-20Fix warnings in stdtest and extratest. Maybe somebody will care.Ben Blum-1/+0
2013-07-20Stash a spare kill flag inside tasks, to save two atomic xadds in the ↵Ben Blum-0/+12
blocking fastpath.
2013-07-20Add KillHandle and implement exit code propagation to replace join_latchBen Blum-3/+3
2013-07-20Add UnsafeAtomicRcBox::try_unwrap()Ben Blum-1/+68
2013-07-20Reimplement ARC::unwrap() and friends.Ben Blum-19/+211
2013-07-20Remove redundant Atomic{Ui,I}nt types from unstable::syncBen Blum-68/+0
2013-07-03Merge remote-tracking branch 'mozilla/master'Brian Anderson-9/+9
Conflicts: src/libextra/test.rs src/libstd/at_vec.rs src/libstd/cleanup.rs src/libstd/rt/comm.rs src/libstd/rt/global_heap.rs src/libstd/task/spawn.rs src/libstd/unstable/lang.rs src/libstd/vec.rs src/rt/rustrt.def.in src/test/run-pass/extern-pub.rs
2013-06-28librustc: Change "Owned" to "Send" everywherePatrick Walton-6/+6
2013-06-25Change finalize -> drop.Luqman Aden-2/+2
2013-06-23vec: remove BaseIter implementationDaniel Micay-1/+1
I removed the `static-method-test.rs` test because it was heavily based on `BaseIter` and there are plenty of other more complex uses of static methods anyway.
2013-06-20Merge remote-tracking branch 'brson/io' into io-upstreamBrian Anderson-0/+69
Conflicts: src/rt/rust_builtin.cpp src/rt/rustrt.def.in
2013-06-18replace #[inline(always)] with #[inline]. r=burningtree.Graydon Hoare-5/+5
2013-06-16Merge remote-tracking branch 'brson/io'Brian Anderson-0/+69
Conflicts: src/libstd/rt/comm.rs src/libstd/rt/mod.rs src/libstd/rt/sched.rs src/libstd/rt/task.rs src/libstd/rt/test.rs src/libstd/rt/tube.rs src/libstd/rt/uv/uvio.rs src/libstd/rt/uvio.rs src/libstd/task/spawn.rs
2013-06-01Remove all uses of `pub impl`. rs=stylePatrick Walton-5/+5
2013-05-29librustc: Stop reexporting the standard modules from prelude.Patrick Walton-29/+33
2013-05-29Merge remote-tracking branch 'brson/io' into incomingBrian Anderson-0/+69
Conflicts: src/libstd/rt/sched.rs
2013-05-22libstd: Rename libcore to libstd and libstd to libextra; update makefiles.Patrick Walton-0/+261
This only changes the directory names; it does not change the "real" metadata names.