about summary refs log tree commit diff
path: root/src/rt/rust_task.h
AgeCommit message (Collapse)AuthorLines
2012-01-11rt: Add RUST_MAX_STACK env var with 8MB defaultBrian Anderson-0/+3
Closes #1489
2012-01-09add rust_task_is_unwinding predicate and do not kill if already unwindingNiko Matsakis-2/+4
2012-01-06fix how we walk functions to match new closure fmtNiko Matsakis-13/+1
2012-01-06rewrite task testsNiko Matsakis-2/+13
2012-01-06simplify task implNiko Matsakis-5/+3
2011-12-20Revert "wip"Brian Anderson-1/+0
This reverts commit aeadc6269ef76f4425a49d892ceac7ea311ef5c1.
2011-12-20wipBrian Anderson-0/+1
2011-12-20rt: Remove rust_task::grow. ObsoleteBrian Anderson-1/+0
2011-12-20rt: Add a canary value to the end of every stackBrian Anderson-0/+1
Check it on upcall entry and exit, and on stack deletion
2011-12-18rt: Get rid of the rethrow in upcall_failBrian Anderson-0/+1
Throwing in upcall_fail ends up running lots of code in the red zone. To avoid it we have the personality function figure out which stack it's on and switch as needed.
2011-12-17rt: Cache an extra stack segment to avoid bad behavior at stack boundariesBrian Anderson-0/+1
2011-12-06rt: Rename stk_seg.limit to stk_seg.endBrian Anderson-1/+1
rust_task is using the word limit it two ways, so one has to change.
2011-12-06rt: Various tweaks to make __morestack unwinding work on linuxBrian Anderson-0/+1
When unwinding through __morestack the stack limit in the TLS is invalidated and must be reset. Instead of actually landing at __morestack we're just going to make all our Rust landing pads call upcall_reset_stack_limit, which will find the stack segment that corresponds to the current stack pointer and put the limit in the TLS. Also massively expand the stack segment red zone to make more room for the dynamic linker. Will fix in the future.
2011-12-01rt: Refactor record_sp into task::record_stack_limitBrian Anderson-0/+1
2011-11-30rt: Reorganize stack growth codeBrian Anderson-0/+3
2011-11-30rt: Remove the stack pointer field of stk_segBrian Anderson-1/+0
2011-11-22rt: Make __morestack (without unwinding) work on 32-bit linuxBrian Anderson-0/+1
2011-11-18rt: Remove fail calls from rust_task::yieldBrian Anderson-1/+1
2011-11-18rt: Remove task::on_wakeup. UnusedBrian Anderson-9/+0
2011-11-18rt: Remove rust_task::yield. UnusedBrian Anderson-3/+0
2011-11-16rt: Remove rust_task::notify_tasks_wating_to_joinBrian Anderson-6/+0
2011-11-16fix alignment for chan_handle structs; rust equiv is translatedNiko Matsakis-1/+1
to char[16], not struct{long,long}
2011-11-16enum does not have a size consistent with a tag, so use unsigned long insteadNiko Matsakis-4/+3
2011-11-13rt: Perform task notification before killing the parent taskBrian Anderson-0/+2
2011-11-11rt: Take the task lock when dropping port refcountsBrian Anderson-2/+0
Sucks, but otherwise there are races when one task drops the refcount to zero followed by another bumping it again
2011-11-11rt: Remove rust_chanBrian Anderson-1/+1
2011-10-31Stub a __morestack implementation and stack segment allocation. Untested.Patrick Walton-1/+6
2011-09-26rt: Turn on cycle collection at task death; add a test casePatrick Walton-0/+1
2011-09-26rt: Make the logic that moves environments between tasks update the GC alloc ↵Patrick Walton-0/+5
chain correctly
2011-09-23rt: Add a RUST_TRACK_ORIGINS debug flag to help track down memory corruptionPatrick Walton-0/+11
2011-09-21rustc: Port the fn and obj traversal logic over from the GC branch. Doesn't ↵Patrick Walton-1/+1
actually do anything yet due to lack of support in trans.
2011-09-20rt: Add an on-the-side GC chainPatrick Walton-0/+4
2011-09-20rt: Remove the GC alloc chainPatrick Walton-1/+0
2011-09-19rt: Introduce a self-describing box representation and functions to create ↵Patrick Walton-1/+3
and free them
2011-09-14Make failure propagation to dead parents workBrian Anderson-0/+1
The failure will basically go 'through' the dead parent and continue propagating the failure (as if the child was reparented).
2011-09-14Make linked task failure work againBrian Anderson-0/+2
2011-09-07Unwind the stack on task failureBrian Anderson-0/+1
When a task fails, we will throw an exception, then catch it at the bottom of the stack. On Windows we don't do this yet because the exception doesn't propagate correctly. No cleanups yet. Issue #236
2011-09-07Rewrite spawn yet againBrian Anderson-1/+4
The motivation here is that the bottom of each stack needs to contain a C++ try/catch block so that we can unwind. This is already the case for main, but not spawned tasks. Issue #236
2011-08-25Cleaning up task and comm exports, updating all the test cases.Eric Holk-1/+2
2011-08-19rt: Remove rustboot's GC infrastructurePatrick Walton-21/+1
2011-08-17Making more of the rust_task structure directly accessible from Rust.Eric Holk-4/+3
2011-08-16rt: Implement obstacks, untested as of yetPatrick Walton-0/+3
2011-08-16New channel-based task status notifications.Eric Holk-0/+23
2011-08-16Removed trans_comm.rs from the compiler. Updating aio/sio to work with the ↵Eric Holk-0/+2
new chan and port system, started on a networking module for the standard library.
2011-08-15Reducing the chances for race conditions in join.Eric Holk-0/+4
2011-08-15Added a library version of spawn. Before long, we can remove the old version.Eric Holk-0/+1
2011-08-15First step towards port handles.Eric Holk-0/+7
2011-08-08Introduced task handles.unknown-1/+2
This is the new way to refer to tasks in rust-land. Currently all they do is serve as a key to look up the old rust_task structure. Ideally they won't be ref counted, but baby steps.
2011-08-05Atomic ref counting for chans.Eric Holk-8/+1
2011-07-29Removing proxies and message queues.Eric Holk-4/+0