about summary refs log tree commit diff
path: root/src/rt/rust_kernel.h
AgeCommit message (Collapse)AuthorLines
2011-07-29Add sched_threads rt function to get the number of scheduler threadsBrian Anderson-3/+1
2011-07-29Removing proxies and message queues.Eric Holk-76/+1
2011-07-28Do all runtime calls to getenv at initializationBrian 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-28Made 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-28Per-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-28Made root_task no longer special.Eric Holk-0/+2
2011-07-21Lots 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-13Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases.Graydon Hoare-2/+2
2011-07-06Add realloc method to rust_kernelRob Arnold-0/+1
2011-07-06rt: Add a stack check to upcall_get_type_descPatrick Walton-0/+1
2011-06-28Resurrecting the runtime unit tests, and modifying them so they compile ↵Eric Holk-2/+2
under the latest refactoring changes.
2011-06-28Renamed what's left of rust_dom to rust_schedulerEric Holk-8/+9
2011-06-28Moved win32_require to the kernel.Eric Holk-1/+5
2011-06-28Removed 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-28Moved thread management to rust_kernel.Eric Holk-2/+21
2011-06-28There is only one domain per kernel now.Eric Holk-13/+7
2011-06-13This 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-24Dead code elimination.Rafael Ávila de Espíndola-2/+1
2011-04-19Overhaul logging system in runtimeMarijn 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-16Fixed deadlock caused by the message pump not being notified of new message ↵Michael Bebenita-0/+11
sends.
2010-09-10Added lock_and_signal::signal_all(), and made the rust_kernel::join() use ↵Michael Bebenita-2/+0
wait instead of yield.
2010-09-08Tidy 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-08Cleaned up locking in the kernel.Michael Bebenita-6/+11
2010-09-07Fixed race in the rust kernel.Michael Bebenita-0/+3
2010-09-07Lots 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-07Added 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.