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
c414b78afe
rt: Remove the kernel task table
2012-03-15 11:10:52 -07:00
Brian Anderson
1366d65660
rt: Remove remaining uses of rust_kernel::get_task_by_id
2012-03-15 11:10:52 -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
Marijn Haverbeke
d0f5e58e95
Zero out dest ptr when port_recv doesn't return a value
2012-03-15 15:08:30 +01:00
Brian Anderson
5c23d21e83
rt: Remove an incorrect assert in lock_and_signal
...
This assert doesn't hold because it isn't made while holding the lock
2012-03-13 16:12:38 -07:00
Brian Anderson
3de30f4ef2
rt: Change alignof to rust_alignof. Remove -Wno-c++11-compat. Closes #1644
2012-03-12 18:03:48 -07:00
Brian Anderson
db79f3c0a5
rt: Remove arbitrary limit on size of port queue. Closes #1245
2012-03-12 13:24:09 -07:00
Brian Anderson
dc0b9f44e2
rt: Change the rust_port refcounting scheme to avoid races
...
Hopefully...
2012-03-06 17:14:40 -08:00
Brian Anderson
ee991cae81
rt: Add a hack to fix a port detach bug
2012-03-05 20:02:25 -08:00
Brian Anderson
958c321083
rt: Fix the atomic get_ref_count method to avoid races
2012-03-05 19:39:56 -08:00
Brian Anderson
1347d04bb0
rt: Properly block tasks while waiting for port detach
2012-03-05 19:39:56 -08: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
f057f00300
rt: Simplify reap_dead_tasks
2012-03-05 19:39:56 -08:00
Brian Anderson
8efe4b8913
rt: Add an assert to the scheduler loop
2012-03-05 19:39:56 -08:00
Brian Anderson
e08f46db68
rt: Move receive code into rust_port
2012-03-05 19:39:56 -08:00
Brian Anderson
77295c56c5
rt: Simplify the recv interface
2012-03-05 19:39:56 -08:00
Brian Anderson
8e0efce0da
rt: Move some code from rust_port_detach into rust_port::detach
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
Graydon Hoare
e400733e90
Extra removal, missed by last commit.
2012-03-05 16:02:38 -08:00
Graydon Hoare
6c87c34277
Remove dead code from rt (debug_obj, rust_obj, rust_closure, rust_box_obj, rust_vtable)
2012-03-05 15:50:11 -08:00
Brian Anderson
3a4c96a196
rt: Remove virtual methods from memory_region, rust_srv
2012-03-05 14:47:24 -08:00
Brian Anderson
38b2b74413
rt: Move RUST_POISON_ON_FREE into rust_env
2012-03-02 20:13:52 -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
f4ce965ce7
rt: Port ref counts are protected by the task lock. Ick.
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
Niko Matsakis
def72bda47
retool inline encoding to handle methods, fix tests
2012-03-02 06:47:25 -08:00
Brian Anderson
96f565492d
rt: Make fields of rust_task_thread private where possible
2012-03-01 21:41:11 -08:00
Brian Anderson
b6c57dbba2
rt: rust_task_thread isn't ref counted
2012-03-01 21:19:12 -08:00
Brian Anderson
084a699a7a
rt: Remove vec_append.ll
...
This looks like just a random snippet of llasm.
2012-03-01 18:20:40 -08:00
Brian Anderson
5df44bd066
rt: Remove rust_kernel::live_tasks. Unused
2012-03-01 14:53:20 -08:00
Niko Matsakis
7d0958f70f
add the ability to snag the frame so we can verify that we are inlining
2012-02-29 11:54:47 -08:00
Erick Tryzelaar
d3331bce98
rt: strings should escape chars like '\n' as '\n'
2012-02-28 18:05:25 -08:00
Brian Anderson
8d617e638e
rt: Reset the stack boundary after returning from crust functions
2012-02-28 17:56:15 -08:00
Jeff Olson
b79b5739c9
add rust_uv_loop_delete to rustrt.def.in
2012-02-28 17:56:15 -08:00
Jeff Olson
b4c88cdcec
add uv::loop_delete()
...
because of the last change, the loop ptr is no longer cleaned up
when the loop exits. This api call addresses that. Sadly, the loop
ptr is not "reusable" across multiple calls to uv::run().
2012-02-28 17:56:15 -08:00