about summary refs log tree commit diff
path: root/src/rt/arch/i386/context.cpp
AgeCommit message (Collapse)AuthorLines
2013-10-19Use __morestack to detect stack overflowAlex Crichton-82/+0
This commit resumes management of the stack boundaries and limits when switching between tasks. This additionally leverages the __morestack function to run code on "stack overflow". The current behavior is to abort the process, but this is probably not the best behavior in the long term (for deails, see the comment I wrote up in the stack exhaustion routine).
2013-03-11core: Add rt mod and add the new scheduler codeBrian Anderson-2/+1
2012-12-10Add license boilerplate to more files.Graydon Hoare-0/+10
2012-04-03Refactor includes structure, getting rid of rust_internal.hJon Morton-6/+2
Many changes to code structure are included: - removed TIME_SLICE_IN_MS - removed sychronized_indexed_list - removed region_owned - kernel_owned move to kernel.h, task_owned moved to task.h - global configs moved to rust_globals.h - changed #pragma once to standard guard in rust_upcall.h - got rid of memory.h
2011-12-19rt: Zero the bottom frame's return address and base pointerBrian Anderson-1/+5
My reading of libunwind leads me to believe this is expected. Closes #1322
2011-08-17Making more of the rust_task structure directly accessible from Rust.Eric Holk-0/+2
2011-07-13Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases.Graydon Hoare-1/+1
2011-06-23Combined set_registers and get_registers into swap_registers.Eric Holk-8/+5
2011-06-23Wrote swap_context in assembly. Closes #548. This also allows us to ↵Eric Holk-19/+8
re-enable optimization on OSX for both gcc and clang. Also, re-enamed task-comm-1.rs, which was previously broken by optimization.
2011-06-15Fixed a problem where spawn arguments were getting lost again. Also, fixed ↵Eric Holk-1/+5
up stack alignment, which closes #496
2011-06-13This is the mega-ucontext commit. It replaces the task switching mechanism ↵Eric Holk-0/+81
with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc). This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.