| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2012-02-08 | rt: Change the scheme used for terminating the kernel | Brian Anderson | -0/+9 | |
| 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-04 | rt: Expand rust_kernel::live_tasks to a uintptr_t | Brian Anderson | -1/+1 | |
| 2012-02-04 | rt: Stop using atomic ops on rust_kernel::live_tasks | Brian Anderson | -3/+4 | |
| These ops are all done within spitting distance of a suitable lock, so just protect it with the lock. | ||||
| 2012-02-03 | rt: Clean up the way the kernel tracks tasks | Brian Anderson | -6/+10 | |
| 2012-02-03 | rt: Do all task creation through a scheduler | Brian Anderson | -3/+2 | |
| 2012-02-03 | rt: Extract rust_scheduler from rust_task_thread | Brian Anderson | -17/+4 | |
| 2012-02-03 | rt: Rename rust_scheduler to rust_task_thread | Brian Anderson | -4/+4 | |
| 2012-02-02 | rt: Only wake up all schedulers when no tasks are left | Brian Anderson | -1/+1 | |
| At the moment there's not really any reason to be raising this signal, since they schedulers wake up periodically anyway, but once we remove the timer this will be how the schedulers know to exit. | ||||
| 2012-01-29 | rt: Make the initial segment of the main task's stack 1MB | Brian Anderson | -1/+3 | |
| This is a trick to fool microbenchmarks. Closes #1681 | ||||
| 2012-01-12 | libcore: Add sys::set_exit_status | Brian Anderson | -1/+3 | |
| Sets the process exit code | ||||
| 2011-09-23 | rt: Add a RUST_TRACK_ORIGINS debug flag to help track down memory corruption | Patrick Walton | -0/+5 | |
| 2011-08-10 | rt: Shutdown gracefully on failure | Brian Anderson | -0/+2 | |
| When the kernel fails, kill all tasks and wait for the schedulers to stop instead of just exiting. I'm sure there are tons of lurking issues here but this is enough to fail without leaking (at least in the absence of cleanups). | ||||
| 2011-08-08 | Introduced task handles. | unknown | -2/+6 | |
| 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-07-29 | Add sched_threads rt function to get the number of scheduler threads | Brian Anderson | -3/+1 | |
| 2011-07-29 | Removing proxies and message queues. | Eric Holk | -76/+1 | |
| 2011-07-28 | Do all runtime calls to getenv at initialization | Brian Anderson | -0/+2 | |
| getenv is not threadsafe and (maybe as a result) it's randomly crashing with CFLAGS=-g and RUST_THREADS=32. Calls from rust code are still on their own. | ||||
| 2011-07-28 | Made task threads wait instead of sleep, so they can be woken up. This ↵ | Eric Holk | -0/+1 | |
| appears to give us much better parallel performance. Also, commented out one more unsafe log and updated rust_kernel.cpp to compile under g++ | ||||
| 2011-07-28 | Per-thread scheduling. Closes #682. | Eric Holk | -22/+20 | |
| Tasks are spawned on a random thread. Currently they stay there, but we should add task migration and load balancing in the future. This should drammatically improve our task performance benchmarks. | ||||
| 2011-07-28 | Made root_task no longer special. | Eric Holk | -0/+2 | |
| 2011-07-21 | Lots of work on memory tracking and channels. | Eric Holk | -2/+2 | |
| We're trying to get closer to doing correct move semantics for channel operations. This involves a lot of cleanup (such as removing the unused sched parameter from rust_vec constructor) and making circular_buffer kernel_owned. Added tagging for memory allocations. This means we give a string tag to everything we allocate. If we leak something and TRACK_ALLOCATIONS is enabled, then it's much easier now to tell exactly what is leaking. | ||||
| 2011-07-13 | Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases. | Graydon Hoare | -2/+2 | |
| 2011-07-06 | Add realloc method to rust_kernel | Rob Arnold | -0/+1 | |
| 2011-07-06 | rt: Add a stack check to upcall_get_type_desc | Patrick Walton | -0/+1 | |
| 2011-06-28 | Resurrecting the runtime unit tests, and modifying them so they compile ↵ | Eric Holk | -2/+2 | |
| under the latest refactoring changes. | ||||
| 2011-06-28 | Renamed what's left of rust_dom to rust_scheduler | Eric Holk | -8/+9 | |
| 2011-06-28 | Moved win32_require to the kernel. | Eric Holk | -1/+5 | |
| 2011-06-28 | Removed dom_owned, splitting things between task_owned and kernel_owned. Had ↵ | Eric Holk | -9/+0 | |
| to re-xfail a few tests brson recently un-xfailed. | ||||
| 2011-06-28 | Moved thread management to rust_kernel. | Eric Holk | -2/+21 | |
| 2011-06-28 | There is only one domain per kernel now. | Eric Holk | -13/+7 | |
| 2011-06-13 | This is the mega-ucontext commit. It replaces the task switching mechanism ↵ | Eric Holk | -0/+1 | |
| 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. | ||||
| 2011-05-24 | Dead code elimination. | Rafael Ávila de Espíndola | -2/+1 | |
| 2011-04-19 | Overhaul logging system in runtime | Marijn Haverbeke | -1/+1 | |
| See https://github.com/graydon/rust/wiki/Logging-vision The runtime logging categories are now treated in the same way as modules in compiled code. Each domain now has a log_lvl that can be used to restrict the logging from that domain (will be used to allow logging to be restricted to a single domain). Features dropped (can be brought back to life if there is interest): - Logger indentation - Multiple categories per log statement - I possibly broke some of the color code -- it confuses me | ||||
| 2010-09-16 | Fixed deadlock caused by the message pump not being notified of new message ↵ | Michael Bebenita | -0/+11 | |
| sends. | ||||
| 2010-09-10 | Added lock_and_signal::signal_all(), and made the rust_kernel::join() use ↵ | Michael Bebenita | -2/+0 | |
| wait instead of yield. | ||||
| 2010-09-08 | Tidy up the sync dir, remove dead or mis-designed code in favour of OS ↵ | Graydon Hoare | -8/+2 | |
| primitives, switch rust_kernel to use a lock/signal pair and wait rather than spin. | ||||
| 2010-09-08 | Cleaned up locking in the kernel. | Michael Bebenita | -6/+11 | |
| 2010-09-07 | Fixed race in the rust kernel. | Michael Bebenita | -0/+3 | |
| 2010-09-07 | Lots of design changes around proxies and message passing. Made it so that ↵ | Michael Bebenita | -6/+99 | |
| domains can only talk to other domains via handles, and with the help of the rust_kernel. | ||||
| 2010-09-07 | Added a few utility classes, cleaned up the include order of .h files, and ↵ | Michael Bebenita | -0/+21 | |
| started to make the Rust kernel own domain message queues rather than the Rust domains themselves. | ||||
