about summary refs log tree commit diff
path: root/src/libstd/rt
AgeCommit message (Collapse)AuthorLines
2013-08-01auto merge of #8158 : bblum/rust/task-cleanup, r=brsonbors-4/+10
r? @brson
2013-08-01migrate many `for` loops to `foreach`Daniel Micay-17/+18
2013-08-01make `in` and `foreach` get treated as keywordsDaniel Micay-14/+14
2013-07-31Move atomically to unstable::sync, and document what it actually does. Close ↵Ben Blum-1/+1
#7872.
2013-07-31Give tasks useful names. #2891Ben Blum-3/+9
2013-07-31auto merge of #8139 : brson/rust/rm-old-task-apis, r=pcwaltonbors-26/+55
This removes a bunch of options from the task builder interface that are irrelevant to the new scheduler and were generally unused anyway. It also bumps the stack size of new scheduler tasks so that there's enough room to run rustc and changes the interface to `Thread` to not implicitly join threads on destruction, but instead require an explicit, and mandatory, call to `join`.
2013-07-30auto merge of #8008 : bblum/rust/select, r=brsonbors-100/+557
Main logic in ```Implement select() for new runtime pipes.```. The guts of the ```PortOne::try_recv()``` implementation are now split up across several functions, ```optimistic_check```, ```block_on```, and ```recv_ready```. There is one weird FIXME I left open here, in the "implement select" commit -- an assertion I couldn't get to work in the receive path, on an invariant that for some reason doesn't hold with ```SharedPort```. Still investigating this.
2013-07-30std::rt: Change Thread interface to require an explicit joinBrian Anderson-25/+54
Makes it more obvious what's going on
2013-07-30std::rt: Use 2MB stacksBrian Anderson-1/+1
Seems to be around the minimum needed by rustc without split stacks
2013-07-30UnsafeArc methods return unsafe pointers, so are not themselves unsafe.Ben Blum-10/+10
2013-07-30Unkillable is not unsafe. Close #7832.Ben Blum-23/+21
2013-07-30Add a better-for-testing optimistic_check() for pipes with cfg(test).Ben Blum-1/+15
2013-07-30Add test cases for selectBen Blum-0/+228
2013-07-30Implement select() for new runtime pipes.Ben Blum-35/+269
2013-07-30implement pointer arithmetic with GEPDaniel Micay-2/+2
Closes #8118, #7136 ~~~rust extern mod extra; use std::vec; use std::ptr; fn bench_from_elem(b: &mut extra::test::BenchHarness) { do b.iter { let v: ~[u8] = vec::from_elem(1024, 0u8); } } fn bench_set_memory(b: &mut extra::test::BenchHarness) { do b.iter { let mut v: ~[u8] = vec::with_capacity(1024); unsafe { let vp = vec::raw::to_mut_ptr(v); ptr::set_memory(vp, 0, 1024); vec::raw::set_len(&mut v, 1024); } } } fn bench_vec_repeat(b: &mut extra::test::BenchHarness) { do b.iter { let v: ~[u8] = ~[0u8, ..1024]; } } ~~~ Before: test bench_from_elem ... bench: 415 ns/iter (+/- 17) test bench_set_memory ... bench: 85 ns/iter (+/- 4) test bench_vec_repeat ... bench: 83 ns/iter (+/- 3) After: test bench_from_elem ... bench: 84 ns/iter (+/- 2) test bench_set_memory ... bench: 84 ns/iter (+/- 5) test bench_vec_repeat ... bench: 84 ns/iter (+/- 3)
2013-07-29Optimize try_recv to not require the two context switches when data is ↵Ben Blum-31/+34
available.
2013-07-29Remove ChanOneHack/PortOneHack extra allocationBen Blum-50/+30
2013-07-27Change concurrency primitives to standard naming conventionsSteven Stewart-Gallus-10/+10
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-27auto merge of #8076 : omasanori/rust/cleanup, r=huonwbors-2/+0
A cleanup suggested on #7922.
2013-07-27auto merge of #7864 : brson/rust/start-on-main-thread, r=brsonbors-10/+61
Applications that need to use the GUI can override start and set up the runtime using this function.
2013-07-27std::rt: Add start_on_main_thread functionBrian Anderson-10/+61
Applications that need to use the GUI can override start and set up the runtime using this function.
2013-07-27auto merge of #8040 : luqmana/rust/rtn, r=brsonbors-108/+512
Implements various missing tcp & udp methods.. Also fixes handling ipv4-mapped/compatible ipv6 addresses and addresses the XXX on `status_to_maybe_uv_error`. r? @brson
2013-07-27Remove unnecessary #[path = "***/mod.rs"] lines.OGINO Masanori-2/+0
Fixes #7922. Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2013-07-26Consolidate raw representations of rust valuesAlex Crichton-26/+26
This moves the raw struct layout of closures, vectors, boxes, and strings into a new `unstable::raw` module. This is meant to be a centralized location to find information for the layout of these values. As safe method, `repr`, is provided to convert a rust value to its raw representation. Unsafe methods to convert back are not provided because they are rarely used and too numerous to write an implementation for each (not much of a common pattern).
2013-07-26libstd: Tests for {peer, socket}_name.Luqman Aden-0/+86
2013-07-25libstd: Implement some missing udp methods.Luqman Aden-21/+132
2013-07-25libstd: Implement some missing tcp methods.Luqman Aden-15/+72
2013-07-25libstd: Add ToStr impl for IpAddr.Luqman Aden-0/+42
2013-07-25libstd: Get rid of duplication in {peer, socket}_name and remove extra *.Luqman Aden-103/+49
2013-07-25libstd: Handle IPv4-Mapped/Compatible IPv6 addresses.Luqman Aden-1/+30
2013-07-25libstd: Fix errors when rtdebug! is not a noop.Luqman Aden-3/+3
2013-07-25libstd: Implement {peer, socket}_name for new rt tcp & udp.Luqman Aden-69/+202
2013-07-24auto merge of #7996 : erickt/rust/cleanup-strs, r=ericktbors-11/+9
This is a cleanup pull request that does: * removes `os::as_c_charp` * moves `str::as_buf` and `str::as_c_str` into `StrSlice` * converts some functions from `StrSlice::as_buf` to `StrSlice::as_c_str` * renames `StrSlice::as_buf` to `StrSlice::as_imm_buf` (and adds `StrSlice::as_mut_buf` to match `vec.rs`. * renames `UniqueStr::as_bytes_with_null_consume` to `UniqueStr::to_bytes` * and other misc cleanups and minor optimizations
2013-07-24fix compilation on macos/windowsDaniel Micay-1/+2
2013-07-24std:rt: args module is not used by win/mac. #7951Brian Anderson-69/+123
2013-07-23auto merge of #7980 : graydon/rust/misc-benchmarks, r=catamorphismbors-0/+38
Some machinery for enabling #[bench] benchmarks in std and some examples showing how to write them.
2013-07-23std and extra: use as_c_str instead of as_buf in a couple placesErick Tryzelaar-3/+3
These uses are assuming the strings are null terminated, so it should be using `as_c_str` instead of `as_buf`
2013-07-23std: move StrUtil::as_c_str into StrSliceErick Tryzelaar-7/+5
2013-07-23std: move str::as_buf into StrSliceErick Tryzelaar-4/+4
2013-07-22std: add #[bench] benchmarks for global and local heaps.Graydon Hoare-0/+38
2013-07-22std: fix for blocked task resumeJeff Olson-2/+2
2013-07-22std: make check appeasementJeff Olson-6/+7
2013-07-22std: minor timer cleanup based on feedbackJeff Olson-5/+5
2013-07-22std: add rt::io::TimerJeff Olson-0/+67
2013-07-22std: add RtioTimer and UvTimer impl atop rt::uvJeff Olson-0/+69
2013-07-22new snapshotDaniel Micay-21/+1
2013-07-20librustc: Remove `pub extern` and `priv extern` from the language.Patrick Walton-2/+2
Place `pub` or `priv` on individual items instead.
2013-07-20auto merge of #7910 : brson/rust/rm-fixme, r=graydonbors-5/+0
2013-07-20auto merge of #7908 : anasazi/rust/fix_udp_mut, r=brsonbors-82/+81
2013-07-20auto merge of #7858 : bblum/rust/kill, r=brsonbors-736/+940
Some notes about the commits. Exit code propagation commits: * ```Reimplement unwrap()``` has the same old code from ```arc::unwrap``` ported to use modern atomic types and finally (it's considerably nicer this way) * ```Add try_unwrap()``` has some new slightly-tricky (but pretty simple) concurrency primitive code * ```Add KillHandle``` and ```Add kill::Death``` are the bulk of the logic. Task killing commits: * ```Implement KillHandle::kill() and friends```, ```Do a task-killed check```, and ```Add BlockedTask``` implement the killing logic; * ```Change the HOF context switchers``` turns said logic on Linked failure commits: * ```Replace *rust_task ptrs``` adapts the taskgroup code to work for both runtimes * ```Enable taskgroup code``` does what it says on the tin. r? @brson