Marijn Haverbeke
b1d7f252a9
Remove unused tydesc argument to upcall_shared_malloc
2012-02-21 17:08:14 +01:00
Brian Anderson
4220dcf1e9
core: New task API
2012-02-20 18:58:04 -08:00
Chris Peterson
fed81c2cfc
rt: Add some lock_and_signal assertions
...
Assert that locks are not reentered on the same thread, unlocked by a
different thread, or deleted while locked.
2012-02-19 23:15:35 -08:00
Chris Peterson
9f49293232
rt: Initialize Windows CRITICAL_SECTION with non-zero spin count
...
If a CRITICAL_SECTION is not initialized with a spin count, it will
default to 0, even on multi-processor systems. MSDN suggests using
4000. On single-processor systems, the spin count parameter is ignored
and the critical section's spin count defaults to 0.
For Windows >= Vista, extra debug info is allocated for
CRITICAL_SECTIONs but not released in a timely manner. Consider using
InitializeCriticalSectionEx(CRITICAL_SECTION_NO_DEBUG_INFO).
2012-02-19 23:13:31 -08:00
Chris Peterson
159dfd7c3b
rt: Delete Windows CRITICAL_SECTION in dtor
2012-02-19 23:11:03 -08:00
Chris Peterson
3d202d7eae
rt: rename nano_time() builtin to match time::precise_time_ns()
2012-02-18 01:39:42 -08:00
Chris Peterson
123a920f59
std: Fix Windows system time conversion for get_time()
2012-02-18 01:21:26 -08:00
Brian Anderson
54d7bffbb8
rt: Make upcall_vec_push an intrinsic
2012-02-17 12:08:03 -08:00
Brian Anderson
db62154062
rt: Don't take the lock when reallocing in the kernel memory region
2012-02-17 11:37:17 -08:00
Brian Anderson
d23cd8f52f
rt: Don't hit TLS on upcall_vec_push unless necessary
2012-02-17 11:37:17 -08:00
Brian Anderson
a3fdd8c93f
rt: Don't log on entry to upcall_vec_push. Also slow
2012-02-17 11:37:17 -08:00
Brian Anderson
fca8e9e621
rt: Don't do the stack canary check in upcall_vec_push. Too slow
2012-02-17 11:37:17 -08:00
Brian Anderson
e0b2fd8417
rt: Simplify upcall_vec_push
2012-02-17 11:37:17 -08:00
Brian Anderson
853e2003b8
rt: Make the stack canary just a word on the stk_seg struct
2012-02-17 11:37:17 -08:00
Brian Anderson
75503570c7
rt: Untabify rust_port_selector.cpp
2012-02-16 12:53:21 -08:00
Brian Anderson
96af6f05a1
rt: Randomize port selection
2012-02-16 12:53:21 -08:00
Brian Anderson
b2cfb7ef82
rt: Add rust_port_select function
2012-02-16 11:12:22 -08:00
Brian Anderson
859e025652
rt: Reconfigure the C stack for valgrind each time it's used
2012-02-14 15:11:56 -08:00
Brian Anderson
a53a08e1b9
rt: Don't allocate a C stack for tasks that already have one
2012-02-14 13:51:15 -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
a393fb3221
rt: Maintain stack ptrs correctly when returning from stack switches
2012-02-14 11:24:09 -08:00
Brian Anderson
214cdd0dee
rustc: Translate crust functions
2012-02-14 11:24:09 -08:00
Brian Anderson
4cc1e31f74
rt: Add a Rust callback debugging function
2012-02-14 11:24:09 -08:00
Ted Horst
a7a1152db5
put fflush back in
2012-02-10 19:42:32 -08:00
Ted Horst
36d5074f8f
log to stderr instead of stdout
...
includes rustc diagnostics
runtest updated to check stderr for errors
2012-02-10 19:42:32 -08:00
Brian Anderson
b9e0ee8e7e
rt: Add docs to stack functions
2012-02-10 12:58:35 -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
dd0ae80e63
rt: Account for the size of stack_canary in create_stack
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
8e55d3130a
rt: Use 100k stacks for scheduler threads
2012-02-10 11:53:30 -08:00
Marijn Haverbeke
d01e7cd340
Represent boxed ifaces in a way similar to functions
...
They are now a (dictptr, box) pair, where box is a regular boxed
representation of the inner type. This cuts down on some special
case code.
Also removes some code from trans::base that was moved to shape but
then somehow restored in trans::base through a bad merge.
Starts on issue #1567
2012-02-10 12:36:57 +01: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
dff256cd19
rt: Move valgrind stack configuration out of the hot path
2012-02-09 21:27:50 -08:00
Brian Anderson
81e1564a7d
rt: Detach pthreads before exiting
...
Joinable pthreads need to be either joined or detached and we no
longer join with the scheduler threads.
2012-02-09 19:00:16 -08:00
Brian Anderson
5d8d591ffc
rt: Remove sync::yield and sync::sleep
2012-02-09 19:00:16 -08:00
Brian Anderson
421c8db144
rt: Move rust_thread to its own files
2012-02-09 19:00:16 -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
bfb80064d2
rt: Add methods to rust_task_thread for borrowing C stacks
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
Brian Anderson
1e2fe4ab8f
rt: Rename call_shim_on_c_stack to call_and_change_stacks
2012-02-09 19:00:15 -08:00
Brian Anderson
0667fb4e63
rt: Make rust_task::ref_count private
2012-02-09 19:00:15 -08:00
Brian Anderson
ae8ea4a78b
rt: Add constructors and destructors for stacks
2012-02-09 19:00:15 -08:00
Brian Anderson
b98df86c09
rt: Move some stack manipulation functions into rust_task
2012-02-09 19:00:15 -08:00
Brian Anderson
4bd8f8d936
rt: Rename new_stack to next_stack, del_stack to prev_stack
2012-02-09 19:00:15 -08:00