Commit Graph

17 Commits

Author SHA1 Message Date
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
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
e4c027446e Revert "rt: Reconfigure the C stack for valgrind each time it's used"
This reverts commit 859e025652.

This ended up not fixing the '0 bytes lost' problem and has some performance
impact.
2012-02-27 14:01:36 -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
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
421c8db144 rt: Move rust_thread to its own files 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
028af5cb6c rt: Change the lifecycle of tasks and schedulers for various reasons
This is in preparation for giving schedulers their own life cycle separate
from the kernel.

Tasks must be deleted before their scheduler thread, so we can't let the
scheduler exit before all its tasks have been cleaned up. In this scheme,
the scheduler will unregister tasks with the kernel when they are reaped,
then drop their ref on the task (there may still be others). When the task
ref count hits zero, the task will request to be unregistered from the
scheduler, which is responsible for deleting the task.

Instead of having the kernel tell the scheduler to exit, let the scheduler
decide when to exit. For now it will exit when all of its tasks are
unregistered.
2012-02-08 15:42:51 -08:00
Brian Anderson
21d783c338 rt: Make isaac_init not a template 2012-02-03 23:48:12 -08:00
Brian Anderson
12fa90888e rt: Clean up the way the kernel tracks tasks 2012-02-03 23:48:12 -08:00
Brian Anderson
8d881967a2 rt: Extract rust_scheduler from rust_task_thread 2012-02-03 23:48:12 -08:00
Brian Anderson
f94339cc1c rt: Rename rust_scheduler to rust_task_thread 2012-02-03 23:48:12 -08:00