Brian Anderson
|
3a7a408386
|
rt: Free all outstanding boxes at task death
|
2012-03-29 16:43:18 -07:00 |
|
Graydon Hoare
|
2aaca455b9
|
Tidy up multiple declarations and STDC_FOO_MACROS guards in headers.
|
2012-03-28 14:26:51 -07:00 |
|
Brian Anderson
|
08f783ff10
|
rt: Add a task field to stk_seg and populate it
|
2012-03-21 19:10:32 -07:00 |
|
Brian Anderson
|
ba322b0a70
|
rt: Reset the stack limit after catching an exception
This wasn't causing problems but it looked wrong
|
2012-03-21 19:10:31 -07:00 |
|
Brian Anderson
|
b78af4f7c4
|
rt: Inline a bunch of stack switching code
|
2012-03-21 19:10:31 -07:00 |
|
Brian Anderson
|
d5968d9f38
|
rt: Swap the definition of stk_seg::next and prev
|
2012-03-21 19:10:31 -07:00 |
|
Brian Anderson
|
6115b13dfc
|
rt: Don't switch to the C stack on the upcall_new_stack fast path
|
2012-03-21 19:10:31 -07:00 |
|
Brian Anderson
|
8a145a601e
|
rt: Don't swatch stacks during upcall_del_stack
|
2012-03-21 19:10:31 -07:00 |
|
Brian Anderson
|
05466c6138
|
rt: Use an enum to represent the task state
|
2012-03-18 17:41:56 -07:00 |
|
Brian Anderson
|
b247de6458
|
rt: Remove lock_held_by_current_thread
|
2012-03-18 17:03:35 -07:00 |
|
Marijn Haverbeke
|
22bef74b55
|
Remove shared tydescs
All tydescs are static now, there's no need to worry about
marshalling them between threads anymore.
|
2012-03-16 15:38:42 +01:00 |
|
Marijn Haverbeke
|
76d07f4056
|
Remove dynastack support from runtime
Issue #1982
|
2012-03-16 00:44:06 +01:00 |
|
Marijn Haverbeke
|
146b61189a
|
Get rid of rust_crate_cache in the runtime
We are no longer generating dynamic tydescs or dicts.
Issue #1982
|
2012-03-16 00:44:06 +01:00 |
|
Brian Anderson
|
561511e628
|
core: Channels are just port ids
|
2012-03-15 11:10:53 -07:00 |
|
Brian Anderson
|
b278d675a2
|
rt: Look up ports through a single port table
Instead of a two-level lookup, just use one big table
|
2012-03-15 11:10:52 -07:00 |
|
Brian Anderson
|
4c4a2320eb
|
rt: Make rust_port_detach less contentious
It still utterly dominates some benchmarks with busy waiting, but at least it
doesn't create lock contention while doing so.
|
2012-03-05 19:39:56 -08:00 |
|
Brian Anderson
|
0a5603cb58
|
rt: Make linked failure less prone to deadlock
Still a mess.
|
2012-03-05 19:39:56 -08:00 |
|
Brian Anderson
|
cc276fe3c9
|
rt: Be more precise with VALGRIND_MAKE_MEM_UNDEFINED
|
2012-03-05 19:39:56 -08:00 |
|
Brian Anderson
|
c78da1e170
|
rt: Stop calling prepare_valgrind_stack when it's not needed
|
2012-03-05 19:39:56 -08:00 |
|
Brian Anderson
|
93fa933a19
|
rt: Move some locking from rust_port to rust_task
|
2012-03-05 19:39:56 -08:00 |
|
Brian Anderson
|
e3ccac8ed3
|
rt: Renome rust_task::lock to port_lock
|
2012-03-05 19:39:55 -08:00 |
|
Brian Anderson
|
fa566ad2fd
|
rt: Make the rust_task_thread lock private
|
2012-03-05 19:39:55 -08:00 |
|
Brian Anderson
|
2465a63a69
|
rt: Move transition from rust_task to rust_task_thread
|
2012-03-05 19:39:55 -08:00 |
|
Brian Anderson
|
237652299e
|
rt: Protect cond and cond_name with the state_lock
|
2012-03-05 19:39:55 -08:00 |
|
Brian Anderson
|
0432030c27
|
rt: Don't take the task lock on state transitions
|
2012-03-05 19:39:55 -08:00 |
|
Brian Anderson
|
b2a075e20d
|
rt: Protect rust_task::state with a lock
|
2012-03-05 19:39:55 -08:00 |
|
Brian Anderson
|
d7298a797b
|
rt: Protect rust_task::killed with a lock
|
2012-03-05 19:39:55 -08:00 |
|
Brian Anderson
|
ed7d25bb6d
|
rt: Checking port_table.is_empty() requires a lock
|
2012-03-02 17:10:14 -08:00 |
|
Brian Anderson
|
04d9cc18a5
|
rt: Protect rust_task::supervisor with a lock
|
2012-03-02 16:33:33 -08:00 |
|
Brian Anderson
|
14306756b4
|
rt: Always delete task stacks on the task thread
There's not a real race here, but it makes helgrind happy and is arguably
less prone to future errrors.
|
2012-03-02 15:21:59 -08:00 |
|
Brian Anderson
|
7e9aa6c3c2
|
rt: Don't zero new stacks
|
2012-02-27 16:13:51 -08:00 |
|
Niko Matsakis
|
5ee89f3f2a
|
add an option to the final cc so that it prints out/logs unreclaimed ptrs
|
2012-02-24 20:46:27 -08:00 |
|
Brian Anderson
|
155a67eae7
|
Revert "rt: Cut the red zone to 10K on mac"
This reverts commit cb7022cfc20b89947ff3fa96d4617f9fe64d2f3e.
|
2012-02-24 12:26:06 -08:00 |
|
Brian Anderson
|
cb7022cfc2
|
rt: Cut the red zone to 10K on mac
|
2012-02-23 19:42:59 -08:00 |
|
Brian Anderson
|
7a6498668f
|
rt: Cut the red zone to 2K on linux
|
2012-02-23 00:23:22 -08:00 |
|
Brian Anderson
|
cd381333b9
|
rt: Cut the red zone to 4K on linux
|
2012-02-22 23:50:47 -08:00 |
|
Brian Anderson
|
b5c7997ef5
|
rt: Switch to the C stack in reset_stack_limit
|
2012-02-22 23:50:47 -08:00 |
|
Brian Anderson
|
c16bfbe0c3
|
rt: Stop logging on the Rust stack. Closes #1478
|
2012-02-22 22:30:21 -08:00 |
|
Brian Anderson
|
d5e7f0d113
|
rt: Don't kill tasks while they are in a callback from C
|
2012-02-14 11:24:09 -08:00 |
|
Brian Anderson
|
3af4b2c998
|
rt: Call register/deregister_valgrind_stack from the stack con/destructors
|
2012-02-10 12:58:35 -08:00 |
|
Brian Anderson
|
3406da49d9
|
rt: Extract prepare_valgrind_stack from register_valgrind_stack
|
2012-02-10 12:58:35 -08:00 |
|
Brian Anderson
|
c42492e6aa
|
rt: Rename config_valgrind_stack to register_valgrind_stack, etc
|
2012-02-10 12:58:35 -08:00 |
|
Brian Anderson
|
fc028c30a0
|
rt: Move the addition of the stack canary into create_stack
|
2012-02-10 12:58:35 -08:00 |
|
Brian Anderson
|
d493438c98
|
rt: Disable some expensive asserts
|
2012-02-09 22:58:40 -08:00 |
|
Brian Anderson
|
d90a9d3da0
|
rt: Inline everything on the C-stack-switching path
|
2012-02-09 22:15:15 -08:00 |
|
Brian Anderson
|
8ad9cf8087
|
rt: Add more stack-switching commentary
|
2012-02-09 19:00:16 -08:00 |
|
Brian Anderson
|
5d2442d89c
|
rt: Add upcall_call_shim_on_rust_stack
|
2012-02-09 19:00:16 -08:00 |
|
Brian Anderson
|
79b1563abb
|
rt: Use rust_task_thread's C-stack pool for native calls
|
2012-02-09 19:00:16 -08:00 |
|
Brian Anderson
|
8fe506bdca
|
rt: Move more setup code into create_stack
|
2012-02-09 19:00:16 -08:00 |
|
Brian Anderson
|
ea76d3f454
|
rt: Add rust_task::call_on_c_stack
|
2012-02-09 19:00:16 -08:00 |
|