about summary refs log tree commit diff
path: root/src/libstd/task
AgeCommit message (Collapse)AuthorLines
2013-07-20Enable taskgroup code for newsched spawns.Ben Blum-3/+28
2013-07-20Fix linked failure tests to block forever instead of looping around yield.Ben Blum-29/+13
2013-07-20(cleanup) impl TaskSetBen Blum-39/+39
2013-07-20(cleanup) Don't check taskgroup generation monotonicity unless cfg(test).Ben Blum-16/+16
2013-07-20(cleanup) Modernize taskgroup code for the new borrow-checker.Ben Blum-61/+20
2013-07-20Replace *rust_task ptrs in taskgroup code with TaskHandle, for transitioning ↵Ben Blum-128/+202
to newsched killing.
2013-07-20Change the HOF context switchers to pass a BlockedTask instead of a ~Task.Ben Blum-1/+2
2013-07-20Implement KillHandle::kill() and friends (unkillable, atomically). Close #6377.Ben Blum-35/+77
2013-07-20Add kill::Death for task death services and use it in Task.Ben Blum-1/+1
2013-07-18auto merge of #7856 : brson/rust/no-thread-per-core, r=pcwaltonbors-21/+1
This doesn't make sense under the new scheduler.
2013-07-17librustc: Remove all uses of the `Copy` bound.Patrick Walton-2/+4
2013-07-17auto merge of #7841 : alexcrichton/rust/tls++, r=huonwbors-15/+69
Simulates borrow checks for '@mut' boxes, or at least it's the same idea. This allows you to store owned values, but mutate them while they're owned by TLS. This should remove the necessity for a `pop`/`set` pattern to mutate data structures in TLS.
2013-07-16Add a `get_mut` method for TLSAlex Crichton-15/+69
Simulates borrow checks for '@mut' boxes, or at least it's the same idea.
2013-07-16Rename Option swap_unwrap to take_unwrap. Fixes Issue#7764Austin King-3/+3
2013-07-14Make TLS keys actually take up spaceAlex Crichton-9/+13
If the TLS key is 0-sized, then the linux linker is apparently smart enough to put everything at the same pointer. OSX on the other hand, will reserve some space for all of them. To get around this, the TLS key now actuall consumes space to ensure that it gets a unique pointer
2013-07-14Purge the last remnants of the old TLS apiAlex Crichton-4/+3
Closes #3273
2013-07-13Split mutable methods out of Set and MapSteven Fackler-1/+1
Fixes most of #4989. I didn't add Persistent{Set,Map} since the only persistent data structure is fun_treemap and its functionality is currently too limited to build a trait out of.
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-09std: Remove ThreadPerCore spawn mode. UnusedBrian Anderson-21/+1
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