summary refs log tree commit diff
path: root/src/libgreen/stack.rs
AgeCommit message (Collapse)AuthorLines
2014-02-24std: make .swap_remove return Option<T>.Huon Wilson-1/+1
This is one of the last raw "indexing" method on vectors that returns `T` instead of the Option.
2014-02-13Fix a bug where cached stacks weren't re-usedAlex Crichton-2/+32
The condition was the wrong direction and it also didn't take equality into account. Tests were added for both cases. For the small benchmark of `task::try(proc() {}).unwrap()`, this takes the iteration time on OSX from 15119 ns/iter to 6179 ns/iter (timed with RUST_THREADS=1) cc #11389
2014-01-26Removed all instances of XXX in preparation for relaxing of FIXME ruleSalem Talha-2/+2
2014-01-26Bring in the line-length policeAlex Crichton-33/+35
2014-01-24Fix zero-sized memory mappingCorey Richardson-2/+14
2014-01-24Use `mmap` to map in task stacks and guard pageCorey Richardson-26/+95
Also implement caching of stacks.
2014-01-04Don't allow newtype structs to be dereferenced. #6246Brian Anderson-2/+2
2013-12-24green: Rip the bandaid off, introduce libgreenAlex Crichton-0/+75
This extracts everything related to green scheduling from libstd and introduces a new libgreen crate. This mostly involves deleting most of std::rt and moving it to libgreen. Along with the movement of code, this commit rearchitects many functions in the scheduler in order to adapt to the fact that Local::take now *only* works on a Task, not a scheduler. This mostly just involved threading the current green task through in a few locations, but there were one or two spots where things got hairy. There are a few repercussions of this commit: * tube/rc have been removed (the runtime implementation of rc) * There is no longer a "single threaded" spawning mode for tasks. This is now encompassed by 1:1 scheduling + communication. Convenience methods have been introduced that are specific to libgreen to assist in the spawning of pools of schedulers.