summary refs log tree commit diff
path: root/src/rt/rust_sched_loop.h
AgeCommit message (Collapse)AuthorLines
2013-06-26rt: Release big stacks immediately after use to avoid holding on to them ↵Brian Anderson-1/+2
through yields This avoids the following pathological scenario that makes threadring OOM: 1) task calls C using fast_ffi, borrowing a big stack from the scheduler. 2) task returns from C and places the big stack on the task-local stack segment list 3) task calls further Rust functions that require growing the stack, and for this reuses the big stack 4) task yields, failing to return the big stack to the scheduler. 5) repeat 500+ times and OOM Conflicts: src/rt/rust_task.cpp
2013-04-19rt: Fix scalability problem with big stacks on 32 bitPatrick Walton-0/+32
2013-02-14encapsulate isaac RNG in rust_rng structChris Peterson-2/+1
2013-02-14move isaac RNG utility functions to new rust_rng.cpp fileChris Peterson-0/+1
2013-02-06rt: Add rust_try_get_current_taskBrian Anderson-1/+8
2012-12-15WhitespaceBrian Anderson-1/+1
2012-12-15Made a bunch more classes non-copyableJesse Jones-0/+5
2012-12-10Add license boilerplate to more files.Graydon Hoare-0/+10
2012-08-02Set thread name on Mac to make gdb thread info more useful.Eric Holk-0/+2
2012-07-20[1/4 for #2365, #2671] Fix create/kill race with schedulers and tasks during ↵Ben Blum-1/+3
rust_kernel::fail
2012-06-21Tag all remaining FIXMEs with bugs. Install rule in tidy script to enforce this.Graydon Hoare-0/+1
2012-06-21Remove unneeded fieldTim Chevalier-5/+1
2012-06-04Moved log method into logger class better than scheduler fixes #2495Arkaitz Jimenez-1/+0
2012-04-03Refactor includes structure, getting rid of rust_internal.hJon Morton-1/+7
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
2012-04-02remove unneeded assert, move get_task_tls to sched_loopJon Morton-7/+25
2012-04-02Add global rust_get_current_taskJon Morton-36/+7
Previously two methods existed: rust_sched_loop::get_task and rust_task::get_task_from_tcb. Merge both of them into one, trying the faster one (tcb) first, and if that fails, the slower one from the tls.
2012-04-02rt: cleanup passing around of rust_envJon Morton-1/+0
2012-04-01remove rust_srvJon Morton-2/+2
2012-04-01replace assertion macros with plain assertsJon Morton-2/+2
2012-03-31rt: Extract start_main_loop from rust_sched_loop to rust_sched_driverBrian Anderson-2/+8
2012-03-31rt: Refactor the scheduler loop so that it can be driven from withoutBrian Anderson-0/+12
2012-03-31rt: Rename rust_task_thread to rust_sched_loopBrian Anderson-0/+185
This class no longer represents a thread; it just schedules tasks.