about summary refs log tree commit diff
path: root/src/rt/rust_task_thread.cpp
AgeCommit message (Collapse)AuthorLines
2012-03-31rt: Rename rust_task_thread to rust_sched_loopBrian Anderson-395/+0
This class no longer represents a thread; it just schedules tasks.
2012-03-31rt: Extract rust_sched_launcher from rust_task_threadBrian Anderson-7/+2
rust_sched_launcher is actually responsible for setting up the thread and starting the loop. There will be other implementations that do not actually set up a new thread, in order to support scheduling tasks on the main OS thread.
2012-03-28Tidy up multiple declarations and STDC_FOO_MACROS guards in headers.Graydon Hoare-1/+0
2012-03-21rt: Stop using large stacks for the main taskBrian Anderson-3/+3
2012-03-21rt: Don't swatch stacks during upcall_del_stackBrian Anderson-0/+1
2012-03-18rt: Remove rust_task_thread::dead_tasksBrian Anderson-19/+9
2012-03-18rt: Remove rust_task_thread::newborn_tasksBrian Anderson-10/+10
2012-03-18rt: Convert rust_task_list to a typedefBrian Anderson-13/+0
2012-03-18rt: Don't store the name of the task state in rust_task_listBrian Anderson-12/+27
2012-03-18rt: Use an enum to represent the task stateBrian Anderson-11/+27
2012-03-18rt: Remove lock_held_by_current_threadBrian Anderson-3/+0
2012-03-17rt: Remove the recursive lock from rust_task_threadBrian Anderson-7/+1
2012-03-17rt: Remove some bogus pthread settings from rust_task_threadBrian Anderson-8/+0
This is all handled by rust_thread, and 'true' isn't even a valid value to pass to pthread_attr_setdetachestate
2012-03-16Get rid of rust_crate_cache in the runtimeMarijn Haverbeke-6/+0
We are no longer generating dynamic tydescs or dicts. Issue #1982
2012-03-15rt: Remove the kernel task tableBrian Anderson-3/+1
2012-03-15rt: Remove remaining uses of rust_kernel::get_task_by_idBrian Anderson-4/+2
2012-03-05rt: Make linked failure less prone to deadlockBrian Anderson-10/+19
Still a mess.
2012-03-05rt: Stop calling prepare_valgrind_stack when it's not neededBrian Anderson-1/+0
2012-03-05rt: Simplify reap_dead_tasksBrian Anderson-19/+12
2012-03-05rt: Add an assert to the scheduler loopBrian Anderson-1/+2
2012-03-05rt: Move transition from rust_task to rust_task_threadBrian Anderson-0/+23
2012-03-05rt: Protect cond and cond_name with the state_lockBrian Anderson-1/+2
2012-03-05rt: Protect rust_task::state with a lockBrian Anderson-2/+2
2012-03-02rt: Always delete task stacks on the task threadBrian Anderson-0/+1
There's not a real race here, but it makes helgrind happy and is arguably less prone to future errrors.
2012-03-01rt: Make fields of rust_task_thread private where possibleBrian Anderson-9/+9
2012-03-01rt: rust_task_thread isn't ref countedBrian Anderson-1/+0
2012-02-27rt: Don't zero new stacksBrian Anderson-3/+3
2012-02-27rt: Change the way the kernel exits to avoid pthread leaksBrian Anderson-1/+0
This makes the kernel join every scheduler thread before exiting in order to ensure that all threads are completely terminated before the process exits. On my machine, for 32-bit targets, this was causing regular valgrind errors.
2012-02-27Revert "rt: Reconfigure the C stack for valgrind each time it's used"Brian Anderson-0/+1
This reverts commit 859e0256524a1f19ca0c79f518d2bb396355f174. This ended up not fixing the '0 bytes lost' problem and has some performance impact.
2012-02-14rt: Reconfigure the C stack for valgrind each time it's usedBrian Anderson-1/+0
2012-02-14rt: Don't allocate a C stack for tasks that already have oneBrian Anderson-3/+3
2012-02-10rt: Call register/deregister_valgrind_stack from the stack con/destructorsBrian Anderson-3/+0
2012-02-10rt: Extract prepare_valgrind_stack from register_valgrind_stackBrian Anderson-0/+1
2012-02-10rt: Rename config_valgrind_stack to register_valgrind_stack, etcBrian Anderson-3/+3
2012-02-10rt: Use 100k stacks for scheduler threadsBrian Anderson-1/+3
2012-02-09rt: Inline everything on the C-stack-switching pathBrian Anderson-45/+0
2012-02-09rt: Move valgrind stack configuration out of the hot pathBrian Anderson-2/+2
2012-02-09rt: Detach pthreads before exitingBrian Anderson-0/+1
Joinable pthreads need to be either joined or detached and we no longer join with the scheduler threads.
2012-02-09rt: Use rust_task_thread's C-stack pool for native callsBrian Anderson-13/+45
2012-02-09rt: Add methods to rust_task_thread for borrowing C stacksBrian Anderson-1/+29
2012-02-09rt: Make rust_task::ref_count privateBrian Anderson-1/+1
2012-02-09rt: Remove rust_task_user structBrian Anderson-7/+4
2012-02-08rt: Change the lifecycle of tasks and schedulers for various reasonsBrian Anderson-4/+18
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-08rt: Change the scheme used for terminating the kernelBrian Anderson-0/+1
Instead of joining on the scheduler threads, instead keep a count of active schedulers. When there are no more schedulers raise a signal for the main thread to continue. This will be required once schedulers can be added and removed from the running kernel.
2012-02-03rt: Make isaac_init not a templateBrian Anderson-1/+1
2012-02-03rt: Clean up the way the kernel tracks tasksBrian Anderson-12/+6
2012-02-03rt: Extract rust_scheduler from rust_task_threadBrian Anderson-6/+6
2012-02-03rt: Rename rust_scheduler to rust_task_threadBrian Anderson-0/+372