about summary refs log tree commit diff
path: root/src/test/bench/task-perf-linked-failure.rs
AgeCommit message (Collapse)AuthorLines
2014-02-25test: Clean out the test suite a bitAlex Crichton-103/+0
This updates a number of ignore-test tests, and removes a few completely outdated tests due to the feature being tested no longer being supported. This brings a number of bench/shootout tests up to date so they're compiling again. I make no claims to the performance of these benchmarks, it's just nice to not have bitrotted code. Closes #2604 Closes #9407
2014-02-11Rewrite channels yet again for upgradeabilityAlex Crichton-2/+2
This, the Nth rewrite of channels, is not a rewrite of the core logic behind channels, but rather their API usage. In the past, we had the distinction between oneshot, stream, and shared channels, but the most recent rewrite dropped oneshots in favor of streams and shared channels. This distinction of stream vs shared has shown that it's not quite what we'd like either, and this moves the `std::comm` module in the direction of "one channel to rule them all". There now remains only one Chan and one Port. This new channel is actually a hybrid oneshot/stream/shared channel under the hood in order to optimize for the use cases in question. Additionally, this also reduces the cognitive burden of having to choose between a Chan or a SharedChan in an API. My simple benchmarks show no reduction in efficiency over the existing channels today, and a 3x improvement in the oneshot case. I sadly don't have a pre-last-rewrite compiler to test out the old old oneshots, but I would imagine that the performance is comparable, but slightly slower (due to atomic reference counting). This commit also brings the bonus bugfix to channels that the pending queue of messages are all dropped when a Port disappears rather then when both the Port and the Chan disappear.
2014-02-11Change `xfail` directives in compiletests to `ignore`, closes #11363Florian Hahn-3/+3
2014-02-07Added tests to make tidyDerek Guenther-0/+10
2014-01-29Remove do keyword from test/Scott Lawrence-8/+8
2013-11-24Remove linked failure from the runtimeAlex Crichton-2/+1
The reasons for doing this are: * The model on which linked failure is based is inherently complex * The implementation is also very complex, and there are few remaining who fully understand the implementation * There are existing race conditions in the core context switching function of the scheduler, and possibly others. * It's unclear whether this model of linked failure maps well to a 1:1 threading model Linked failure is often a desired aspect of tasks, but we would like to take a much more conservative approach in re-implementing linked failure if at all. Closes #8674 Closes #8318 Closes #8863
2013-11-18librustc: Convert `~fn()` to `proc()` everywhere.Patrick Walton-1/+1
2013-10-28Allow fail messages to be caught, and introduce the Any traitMarvin Löbel-2/+2
Some code cleanup, sorting of import blocks Removed std::unstable::UnsafeArc's use of Either Added run-fail tests for the new FailWithCause impls Changed future_result and try to return Result<(), ~Any>. - Internally, there is an enum of possible fail messages passend around. - In case of linked failure or a string message, the ~Any gets lazyly allocated in future_results recv method. - For that, future result now returns a wrapper around a Port. - Moved and renamed task::TaskResult into rt::task::UnwindResult and made it an internal enum. - Introduced a replacement typedef `type TaskResult = Result<(), ~Any>`.
2013-10-22Drop the '2' suffix from logging macrosAlex Crichton-6/+6
Who doesn't like a massive renaming?
2013-10-18Made `std::task::TaskBuilder::future_result()` easier to useMarvin Löbel-3/+2
2013-10-06Add appropriate #[feature] directives to testsAlex Crichton-1/+1
2013-09-30bench: Remove usage of fmt!Alex Crichton-6/+6
2013-09-15Remove {uint,int,u64,i64,...}::from_str,from_str_radixblake2-ppc-1/+1
Remove these in favor of the two traits themselves and the wrapper function std::from_str::from_str. Add the function std::num::from_str_radix in the corresponding role for the FromStrRadix trait.
2013-08-30Revert "src/test/bench: restructure"Corey Richardson-0/+95
This reverts commit 14cdc26e8a7794e437946f46df5769362b42acdf.
2013-08-28src/test/bench: restructureCorey Richardson-95/+0
2013-08-07test: Fix deadlock in task-perf-linked-failureBrian Anderson-1/+4
2013-08-06remove `extra::iter`Daniel Micay-2/+2
This module provided adaptors for the old internal iterator protocol, but they proved to be quite unreadable and are not generic enough to handle borrowed pointers well. Since Rust no longer defines an internal iteration protocol, I don't think there's going to be any reuse via these adaptors.
2013-08-05Updated std::Option, std::Either and std::ResultMarvin Löbel-1/+1
- Made naming schemes consistent between Option, Result and Either - Changed Options Add implementation to work like the maybe monad (return None if any of the inputs is None) - Removed duplicate Option::get and renamed all related functions to use the term `unwrap` instead
2013-08-01std: Change `Times` trait to use `do` instead of `for`blake2-ppc-2/+2
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-07-20Fix warnings in src/test/bench tests. Nobody will ever care.Ben Blum-1/+1
2013-07-17librustc: Remove all uses of "copy".Patrick Walton-1/+1
2013-05-29librustc: Stop reexporting the standard modules from prelude.Patrick Walton-0/+4
2013-05-22test: Update tests to use the new syntax.Patrick Walton-1/+1
2013-05-19Use assert_eq! rather than assert! where possibleCorey Richardson-1/+1
2013-05-08test: Fix modes in the benchmarks.Patrick Walton-1/+1
2013-05-08test: Fix tests and the pipe compilerPatrick Walton-1/+4
2013-04-18core::comm: Modernize constructors to use `new`Brian Anderson-1/+1
2013-03-29librustc: Remove `fail_unless!`Patrick Walton-2/+2
2013-03-26option: rm functions that duplicate methodsDaniel Micay-1/+1
2013-03-07librustc: Convert all uses of `assert` over to `fail_unless!`Patrick Walton-2/+2
2013-03-02test: Remove `fn@`, `fn~`, and `fn&` from the test suite. rs=defunPatrick Walton-1/+1
2013-02-24test: xfail-pretty some benchmarks. rs=burningtreePatrick Walton-0/+2
2013-02-21core: Extract comm from pipes. #4742Brian Anderson-1/+1
2013-02-15tests/tutorials: Get rid of `move`.Luqman Aden-2/+2
2013-02-13Remove die!, raplace invocations with fail! Issue #4524 pt 3Nick Desaulniers-1/+1
2013-01-31Replace most invocations of fail keyword with die! macroNick Desaulniers-1/+1
2013-01-30Remove oldcomm from the test suiteBrian Anderson-5/+10
2012-12-14Rename core::comm to core::oldcommBrian Anderson-5/+5
2012-12-10Reliciense makefiles and testsuite. Yup.Graydon Hoare-0/+10
2012-10-23core: Use PortOne instead of Future in future_resultBrian Anderson-1/+1
2012-10-12Make moves explicit in bench testsTim Chevalier-2/+2
2012-10-12Replace several common macros of the form #m[...] with m!(...)Kevin Cantu-5/+5
This commit replaces nearly all remaining uses of #fmt, #debug, #error, and #info, and fixes some error messages...
2012-10-04De-mode comm::ChanTim Chevalier-1/+1
2012-10-04Remove arg vectors from main functions. Stop supporting them.Brian Anderson-1/+2
2012-09-25use + mode for (almost) everything when not using legacy modesNiko Matsakis-1/+1
2012-08-27Camel case various core constructorsBrian Anderson-3/+3
2012-08-27Convert core::result to camel caseBrian Anderson-1/+1
2012-08-26Camel case the option typeBrian Anderson-2/+2
2012-08-15Convert more core types to camel caseBrian Anderson-1/+1
2012-08-14fix more fallout from future de-mode-ing.Graydon Hoare-1/+1