Ben Blum
0101f35f27
Add BlockedTask (wake, try_block, etc) in kill.rs.
2013-07-20 05:08:57 -04:00
Ben Blum
e80efe3fda
Do a task-killed check at the start of task 'timeslices'.
2013-07-20 05:08:56 -04:00
Ben Blum
629f6e8d68
Implement KillHandle::kill() and friends (unkillable, atomically). Close #6377 .
2013-07-20 05:08:56 -04:00
Ben Blum
2a99320583
Add tests for KillHandle
2013-07-20 05:08:56 -04:00
Ben Blum
afc199bea0
Remove join_latch
2013-07-20 05:08:56 -04:00
Ben Blum
6882508b6f
Add kill::Death for task death services and use it in Task.
2013-07-20 05:08:56 -04:00
Ben Blum
52ca256d7b
Add KillHandle and implement exit code propagation to replace join_latch
2013-07-20 05:08:56 -04:00
Brian Anderson
ddd8c156c6
std: Remove old magic core mod
2013-07-19 21:01:24 -04:00
bors
f28e581268
auto merge of #7854 : brson/rust/rt-test-threads, r=pcwalton
2013-07-18 17:19:41 -07:00
Patrick Walton
dc4bf173f8
test: Fix tests.
2013-07-17 14:57:55 -07:00
Patrick Walton
2dbb3c3887
test: Fix tests.
2013-07-17 14:57:54 -07:00
Patrick Walton
99b33f7219
librustc: Remove all uses of "copy".
2013-07-17 14:57:51 -07:00
Brian Anderson
b17141370f
std::rt: Rename RUST_TEST_THREADS to RUST_RT_TEST_THREADS
2013-07-17 10:47:05 -07:00
Austin King
712ac836c6
Rename Option swap_unwrap to take_unwrap. Fixes Issue#7764
2013-07-16 12:47:01 -07:00
Daniel Micay
e118555ce6
remove headers from unique vectors
2013-07-15 23:57:27 -04:00
Alex Crichton
9fd2ac7428
Make TLS keys actually take up space
...
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-14 10:15:07 -07:00
Alex Crichton
e3211fa1f1
Purge the last remnants of the old TLS api
...
Closes #3273
2013-07-14 09:29:12 -07:00
bors
07183ea6e7
auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton
...
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-11 19:52:37 -07:00
Alex Crichton
f9bf69d253
Remove all external requirements of @
from TLS
...
Closes #6004
2013-07-11 00:37:13 -07:00
Alex Crichton
e3fb7062aa
Work around stage0 to remove '@' requirements from TLS
2013-07-11 00:21:26 -07:00
bors
41dcec2fe1
auto merge of #7265 : brson/rust/io-upstream, r=brson
...
r? @graydon, @nikomatsakis, @pcwalton, or @catamorphism
Sorry this is so huge, but it's been accumulating for about a month. There's lots of stuff here, mostly oriented toward enabling multithreaded scheduling and improving compatibility between the old and new runtimes. Adds task pinning so that we can create the 'platform thread' in servo.
[Here](e1555f9b56/src/libstd/rt/mod.rs (L201)
) is the current runtime setup code.
About half of this has already been reviewed.
2013-07-09 18:28:46 -07:00
Alex Crichton
692a22e69d
Change the elements in the task-local map to be actual key-value pairs
2013-07-09 17:31:01 -07:00
Brian Anderson
413d51e32d
std::rt: Ignore 0-byte udp reads
2013-07-09 16:54:56 -07:00
Brian Anderson
6fb92f8cab
std::rt: Do local tests in a bare thread to not interfere with the scheduler
2013-07-09 15:48:22 -07:00
Daniel Micay
a4af0960bd
remove the unused exchange_malloc align
parameter
...
`malloc` already returns memory correctly aligned for every possible
type in standard C, and that's enough for all types in Rust too
2013-07-09 16:35:56 -04:00
Brian Anderson
07e52eb7fc
std: Make os::set_exit_status work with newsched
2013-07-09 13:29:05 -07:00
Brian Anderson
ec6d4a1733
std::rt: size_t, not u64
2013-07-09 11:05:57 -07:00
Brian Anderson
7826651335
Tidy
2013-07-08 17:22:51 -07:00
Brian Anderson
fae3336769
Merge remote-tracking branch 'mozilla/master'
...
Conflicts:
src/libextra/test.rs
src/libstd/rt/global_heap.rs
src/libstd/unstable/lang.rs
src/libstd/vec.rs
2013-07-08 16:29:54 -07:00
Brian Anderson
b227583dad
Merge remote-tracking branch 'anasazi/io'
...
Conflicts:
src/libstd/rt/test.rs
2013-07-08 15:53:11 -07:00
Brian Anderson
4282539523
std::rt: Add a hack to allocate different test port ranges to different bots
2013-07-08 14:41:07 -07:00
Eric Reed
5e0be46852
changed .each() to .iter().advance()
2013-07-08 14:19:39 -07:00
Eric Reed
6b2abcaa0f
renamed finalize to drop in Drop impl for UvUdpSocket
2013-07-08 14:19:19 -07:00
Eric Reed
cf23292010
Merge remote-tracking branch 'upstream/io' into io
...
Conflicts:
src/libstd/rt/uvio.rs
2013-07-08 13:03:18 -07:00
Daniel Micay
90f1db10fa
remove headers from exchange allocations
2013-07-08 04:54:41 -04:00
Daniel Micay
0aedecf96b
add a temporary vector_exchange_malloc lang item
2013-07-08 03:41:21 -04:00
Brian Anderson
1098d6980b
Merge remote-tracking branch 'mozilla/master'
...
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-03 14:49:13 -07:00
Huon Wilson
cdea73cf5b
Convert vec::{as_imm_buf, as_mut_buf} to methods.
2013-07-04 00:46:50 +10:00
Eric Reed
b60cf0c5b0
converted TODOs into XXXs
2013-07-02 17:27:46 -07:00
Eric Reed
6a1a7819c9
Merge remote-tracking branch 'upstream/io' into io
...
Conflicts:
src/libstd/rt/test.rs
src/rt/rustrt.def.in
2013-07-02 16:55:56 -07:00
Eric Reed
e6c57793be
IPv6 support for UDP and TCP.
2013-07-02 16:40:57 -07:00
toddaaro
0607178280
A missing ! made it so that the testcase schedule_home_states was throwing spurious assert failures. Why this did not result in the test case failing previously is beyond me.
2013-07-02 11:44:51 -07:00
toddaaro
27818ea7c4
removed unnecessary import that slipped in during merge
2013-07-01 16:51:59 -07:00
toddaaro
062bfd310a
merging task/coroutine refactoring back into upstream
2013-07-01 16:41:17 -07:00
toddaaro
5cfad4b6de
Refactored the runtime to view coroutines as a component of tasks, instead of tasks as a component of coroutines.
2013-07-01 16:14:56 -07:00
Daniel Micay
5b40f2ae5b
pass exchange_malloc an alignment, not a tydesc
2013-06-30 23:30:40 -04:00
Daniel Micay
0d7799d304
global_heap: inline get_box_size and align_to
2013-06-30 22:41:51 -04:00
Daniel Micay
80ab877841
global_heap: inline malloc_raw and add realloc_raw
2013-06-30 22:22:52 -04:00
Daniel Micay
4a29d6eb3f
add a closure_exchange_malloc lang item
...
this makes the exchange allocation header completely unused, and leaves
it uninitialized
2013-06-30 16:24:47 -04:00
Daniel Micay
408eef0d89
stop initializing ref_count in exchange_alloc
...
this is never read anymore
2013-06-30 16:22:55 -04:00