about summary refs log tree commit diff
path: root/src/rt/rust_dom.cpp
AgeCommit message (Collapse)AuthorLines
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