about summary refs log tree commit diff
path: root/src/rt/rust_dom.cpp
AgeCommit message (Collapse)AuthorLines
2011-06-28Renamed what's left of rust_dom to rust_schedulerEric Holk-308/+0
2011-06-28Moved win32_require to the kernel.Eric Holk-19/+0
2011-06-28Removed dom_owned, splitting things between task_owned and kernel_owned. Had ↵Eric Holk-66/+2
to re-xfail a few tests brson recently un-xfailed.
2011-06-28Moved thread management to rust_kernel.Eric Holk-42/+9
2011-06-27A little tidying in rt.Graydon Hoare-11/+7
2011-06-27Implementation mising features in lock_and_signal for Win32. Also lowered ↵Eric Holk-0/+1
the minimum stack size to get the pfib benchmark to run without exhausting its address space on Windows.
2011-06-27Conservatively serialize nearly all upcalls. Successfuly ran make check with ↵Eric Holk-3/+3
RUST_THREADS=8, so we're probably fairly safe now. In the future we can relax the synchronization to get better performance.
2011-06-27Fixed a few concurrency bugs. Still not perfect, but overall it seems much ↵Eric Holk-2/+7
more reliable.
2011-06-27Basic multithreading support. The infinite loops test successfully maxes out ↵Eric Holk-18/+67
the CPU.
2011-06-13This is the mega-ucontext commit. It replaces the task switching mechanism ↵Eric Holk-5/+14
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-26More delicious dead code removal from runtime, upcalls.Graydon Hoare-22/+3
2011-05-24Dead code elimination.Rafael Ávila de Espíndola-2/+1
2011-05-24There is only one activate function now.Rafael Ávila de Espíndola-2/+4
2011-05-24"constant propagate" rust_new_exit_task_glue to its only use.Rafael Ávila de Espíndola-2/+1
2011-05-18One exit_task_glue to rule them all.Rafael Ávila de Espíndola-1/+1
2011-04-19Overhaul logging system in runtimeMarijn Haverbeke-69/+36
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
2011-04-07Move to macro-based logging checks in the C++ codeMarijn Haverbeke-24/+21
No functions should be called for log statements that turn out to be inactive.
2011-01-14Change log buffer butes to a symbolic const in runtime.Graydon Hoare-2/+2
2010-09-16Fixed deadlock caused by the message pump not being notified of new message ↵Michael Bebenita-1/+1
sends.
2010-09-10Cleanup, refactoring, and some runtime tests.Michael Bebenita-65/+28
2010-09-07Lots of design changes around proxies and message passing. Made it so that ↵Michael Bebenita-108/+13
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-19/+4
started to make the Rust kernel own domain message queues rather than the Rust domains themselves.
2010-08-24Implemented an lock free queue based on this paper ↵Michael Bebenita-5/+7
http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf, the "lock free queue" we had before wasn't lock free at all.
2010-08-17Added simple deadlock detection in the scheduler.Michael Bebenita-0/+27
2010-08-17Lots of changes around memory managment in the Runtime. Added memory regions ↵Michael Bebenita-25/+55
and fixed race caused by calling rust_srv::malloc() from multiple threads when sending messages.
2010-08-17Added labels to blocking conditions.Michael Bebenita-3/+4
2010-08-16Putting out the burning tree on Windows. Turns out you can completely starve ↵Michael Bebenita-3/+3
threads by not yielding on windows/vmware, really weird.
2010-08-11Added support for task sleeping in the scheduler.Michael Bebenita-5/+10
2010-08-10Merge commit 'jyasskin/work'Graydon Hoare-33/+44
Conflicts: src/rt/rust_dom.cpp src/rt/rust_upcall.cpp
2010-08-09Synthesize a flush_chan upcall right before a channel's ref_count drops to ↵Michael Bebenita-16/+2
zero. This should only happen in the Rust code and not in the drop glue, or on the unwind path. This change allows the task owning the channel to block on a flush and delete its own channel. This change also cleans up some code around rust_port and rust_chan.
2010-08-09Fixed deadlock in the scheduler caused by condition variables.Michael Bebenita-5/+12
2010-08-09Some pretty printing in the runtime.Michael Bebenita-10/+22
2010-08-09Made the runtime keep track of all live domains and print their state.Michael Bebenita-0/+15
2010-08-09Add names to tasks and domains. These can either be an explicit literal stringJeffrey Yasskin-26/+40
after the "spawn" keyword, or implicitly the call expression used to start the spawn.
2010-07-28Log dead tasks when dom is just waiting for refcounts to drop.Michael Bebenita-2/+7
2010-07-28Note that we keep running the main loop until all task refcounts are zero.Michael Bebenita-1/+2
2010-07-28Move ports out into their own file, add data_message and make communication ↵Michael Bebenita-1/+30
system use it (and proxies) instead of existing token scheme.
2010-07-28Move notification-messages out into their own file and unify into ↵Michael Bebenita-29/+39
notify_message, make them use proxies, cache task proxies in dom.
2010-07-28Add rust_dom::log_state, for logging the running/blocked/dead vectors per ↵Michael Bebenita-0/+30
scheduling iteration.
2010-07-28Fix typos in comments, delete obsolete comments and dead commented code.Michael Bebenita-2/+0
2010-07-25Attempt 2. This time actually reading my own diffs before committing.Roy Frostig-0/+19
2010-07-25Attempt number 1 at extinguishing the windows tree remotely (apologies to ↵Roy Frostig-19/+0
those hacking on Sunday evening PST).
2010-07-25Expose an RNG (the one used by our runtime) to Rust via std.Roy Frostig-25/+2
2010-07-20Fix message formatting in runtime library.Graydon Hoare-1/+1
2010-07-19Added a message passing system based on lock free queues for inter-thread ↵Michael Bebenita-13/+162
communication. Channels now buffer on the sending side, and no longer require blocking when sending. Lots of other refactoring and bug fixes.
2010-06-23Populate tree.Graydon Hoare-0/+271