about summary refs log tree commit diff
path: root/src/libstd/task
AgeCommit message (Collapse)AuthorLines
2013-07-11auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwaltonbors-170/+462
cc #6004 and #3273 This is a rewrite of TLS to get towards not requiring `@` when using task local storage. Most of the rewrite is straightforward, although there are two caveats: 1. Changing `local_set` to not require `@` is blocked on #7673 2. The code in `local_pop` is some of the most unsafe code I've written. A second set of eyes should definitely scrutinize it... The public-facing interface currently hasn't changed, although it will have to change because `local_data::get` cannot return `Option<T>`, nor can it return `Option<&T>` (the lifetime isn't known). This will have to be changed to be given a closure which yield `&T` (or as an Option). I didn't do this part of the api rewrite in this pull request as I figured that it could wait until when `@` is fully removed. This also doesn't deal with the issue of using something other than functions as keys, but I'm looking into using static slices (as mentioned in the issues).
2013-07-11Fix a soundness problem with `get`Alex Crichton-31/+71
2013-07-11Work around stage0 to remove '@' requirements from TLSAlex Crichton-70/+289
2013-07-09Rename local_data methods/types for less keystrokesAlex Crichton-5/+5
2013-07-09Change TLS to almost be able to contain owned typesAlex Crichton-74/+138
2013-07-09Change the elements in the task-local map to be actual key-value pairsAlex Crichton-124/+104
2013-07-09Use purely an owned vector for storing TLS dataAlex Crichton-47/+36
2013-07-08std: Add a yield implementation for newschedBrian Anderson-4/+19
2013-07-08Merge remote-tracking branch 'mozilla/master'Brian Anderson-2/+2
Conflicts: src/libextra/test.rs src/libstd/rt/global_heap.rs src/libstd/unstable/lang.rs src/libstd/vec.rs
2013-07-07remove some method resolve workaroundsDaniel Micay-2/+2
2013-07-03Merge remote-tracking branch 'mozilla/master'Brian Anderson-24/+24
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-07-01Refactored the runtime to view coroutines as a component of tasks, instead ↵toddaaro-8/+20
of tasks as a component of coroutines.
2013-06-29Removing a lot of usage of '&const'Alex Crichton-1/+1
2013-06-29'Borrow' stack closures rather than copying them (e.g., "|x|f(x)"), in prep ↵Ben Blum-0/+4
for making them noncopyable.
2013-06-28libextra: Fix even more merge fallout.Patrick Walton-1/+0
2013-06-28librustc: Disallow "mut" from distributing over bindings.Patrick Walton-1/+3
This is the backwards-incompatible part of per-binding-site "mut".
2013-06-28librustc: Change "Owned" to "Send" everywherePatrick Walton-4/+4
2013-06-28std: silence some test warnings.Huon Wilson-8/+6
2013-06-26auto merge of #7113 : alexcrichton/rust/banned-warnings, r=cmrbors-1/+1
Reopening of #7031, Closes #6963 I imagine though that this will bounce in bors once or twice... Because attributes can't be cfg(stage0)'d off, there's temporarily a lot of new stage0/stage1+ code.
2013-06-25auto merge of #7269 : luqmana/rust/drop, r=thestingerbors-2/+2
Finally rename finalize to drop. Closes #4332.
2013-06-25Change finalize -> drop.Luqman Aden-2/+2
2013-06-25Deny common lints by default for lib{std,extra}Alex Crichton-1/+1
2013-06-25remove `each` from vec, HashMap and HashSetDaniel Micay-1/+1
2013-06-24std: Make unlinking and task notification work with newschedBrian Anderson-3/+19
2013-06-21vec: rm old_iter implementations, except BaseIterDaniel Micay-2/+2
The removed test for issue #2611 is well covered by the `std::iterator` module itself. This adds the `count` method to `IteratorUtil` to replace `EqIter`.
2013-06-20Merge remote-tracking branch 'brson/io' into io-upstreamBrian Anderson-15/+10
Conflicts: src/rt/rust_builtin.cpp src/rt/rustrt.def.in
2013-06-21libstd: cleanup warningsJames Miller-1/+0
2013-06-18replace #[inline(always)] with #[inline]. r=burningtree.Graydon Hoare-2/+2
2013-06-16Merge remote-tracking branch 'brson/io'Brian Anderson-15/+10
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-16Remove moves from *T and implement in another wayNiko Matsakis-14/+3
2013-06-15Merge remote-tracking branch 'brson/io-wip' into ioBrian Anderson-14/+9
Conflicts: src/libstd/rt/sched.rs src/libstd/rt/task.rs src/libstd/rt/test.rs src/libstd/task/mod.rs src/libstd/task/spawn.rs
2013-06-14redesigned the pinning to pin deal with things on dequeue, not on enqueuetoddaaro-1/+1
2013-06-13std::rt: Tasks must have an unwinder. SimplerBrian Anderson-11/+2
2013-06-13std::rt: Change the Task constructors to reflect a treeBrian Anderson-1/+8
2013-06-13Remove unused importsSteven Stewart-Gallus-1/+1
I was able to remove unused imports, and fix the following warnings src/libstd/hashmap.rs:23:15: 23:23 warning: unused import [-W unused-imports (default)] src/libstd/task/spawn.rs:95:15: 95:23 warning: unused import [-W unused-imports (default)] src/libstd/rt/uv/mod.rs:42:0: 42:9 warning: unused import [-W unused-imports (default)] src/libstd/rt/uv/mod.rs:45:0: 45:9 warning: unused import [-W unused-imports (default)] src/librustc/middle/trans/meth.rs:26:0: 26:26 warning: unused import [-W unused-imports (default)] src/librustc/back/link.rs:210:20: 210:25 warning: unused import [-W unused-imports (default)] I was unable to fix the following unused import warnings. The code here was weird. src/libextra/std.rc:40:11: 40:14 warning: unused import [-W unused-imports (default)] src/libextra/std.rc:40:16: 40:24 warning: unused import [-W unused-imports (default)]
2013-06-11option: remove redundant old_iter implsDaniel Micay-3/+4
2013-06-10debugged a compiler ICE when merging local::borrow changes into the main io ↵toddaaro-1/+1
branch and modified the incoming new file lang.rs to be api-compatible
2013-06-10Tag a bunch of destructors that need mutable self with FIXME for #4330. ↵Ben Blum-0/+1
Close #4943.
2013-06-04std::cell: Modernize constructorsPhilipp Brüschweiler-8/+8
Part of #3853
2013-06-01Remove all uses of `pub impl`. rs=stylePatrick Walton-11/+11
2013-05-30Remove unnecessary 'use' formsDaniel Farina-8/+8
Fix a laundry list of warnings involving unused imports that glutted up compilation output. There are more, but there seems to be some false positives (where 'remedy' appears to break the build), but this particular set of fixes seems safe.
2013-05-30Require documentation by default for libstdAlex Crichton-0/+4
Adds documentation for various things that I understand. Adds #[allow(missing_doc)] for lots of things that I don't understand.
2013-05-29librustc: Stop reexporting the standard modules from prelude.Patrick Walton-6/+14
2013-05-29librustc: Redo the unsafe checker and make unsafe methods not callable from ↵Patrick Walton-2/+6
safe code
2013-05-27Get rid of no-longer-needed #[doc(hidden)] attributes.Lindsey Kuper-5/+2
There were several old `#[doc(hidden)]` attributes in libstd and libextra, left over from when rustdoc didn't hide private definitions, tagged with `FIXME #3538`. Since #3538 is now closed, I removed the `#[doc(hidden)]` attributes as well as the FIXMEs, but I left `#[doc(hidden)]` in libstd/task/spawn.rs and libstd/task/rt.rs since those two are apparently `pub`, as well as in libextra/std.rc since std/extra is `pub`.
2013-05-22libstd: Rename libcore to libstd and libstd to libextra; update makefiles.Patrick Walton-0/+2286
This only changes the directory names; it does not change the "real" metadata names.